(Talist.fmap_to_alist_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.alist.fmap_to_alist @ X0)) @ ((cHOL4.list.MAP @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1)))) @ (cHOL4.list.SET_TO_LIST @ (cHOL4.finite_map.FDOM @ X0))))))) (Talist.alist_to_fmap_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ X0)) @ (((cHOL4.list.FOLDR @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: (^[X3]: ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))) @ cHOL4.finite_map.FEMPTY) @ X0))))) (Talist.ALOOKUP_tupled_primitive_def,((cHOL4.min.= @ cHOL4.alist.ALOOKUP_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X3))) @ ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X1)) @ X2)) @ X3))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X3]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.option.NONE)) @ (^[X8]: (^[X2]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X4]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ X3)) @ (cHOL4.option.SOME @ X1)) @ (X5 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))))))) (Talist.ALOOKUP_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X0) @ X1)) @ (cHOL4.alist.ALOOKUP_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Talist.fmap_to_alist_FEMPTY,((cHOL4.min.= @ (cHOL4.alist.fmap_to_alist @ cHOL4.finite_map.FEMPTY)) @ cHOL4.list.NIL)) (Talist.alist_to_fmap_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ cHOL4.list.NIL)) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X0)) @ X1))) @ ((cHOL4.finite_map.FUPDATE @ (cHOL4.alist.alist_to_fmap @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X0))))))))))) (Talist.ALOOKUP_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.list.NIL) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X1))) @ ((X0 @ X4) @ X1))) @ ((X0 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ X1)))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (Talist.ALOOKUP_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ cHOL4.list.NIL) @ X0)) @ cHOL4.option.NONE)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X0)) @ (cHOL4.option.SOME @ X1)) @ ((cHOL4.alist.ALOOKUP @ X3) @ X0))))))))))))) (Talist.ALOOKUP_FAILS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X1) @ X0)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X0))))))))))))) (Talist.ALOOKUP_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X0) @ X1)) @ cHOL4.option.NONE)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))))))))) (Talist.ALOOKUP_TABULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X1)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ ((cHOL4.list.MAP @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (X2 @ X3)))) @ X1)) @ X0)) @ (cHOL4.option.SOME @ (X2 @ X0))))))))))) (Talist.ALOOKUP_EQ_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FLOOKUP @ (cHOL4.alist.alist_to_fmap @ X1))) @ (cHOL4.alist.ALOOKUP @ X1))) @ ((cHOL4.min.= @ (cHOL4.alist.ALOOKUP @ (cHOL4.alist.fmap_to_alist @ X0))) @ (cHOL4.finite_map.FLOOKUP @ X0)))))))) (Talist.MEM_fmap_to_alist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.alist.fmap_to_alist @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X2) @ X1)) @ X0)))))))))) (Talist.MEM_fmap_to_alist_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.alist.fmap_to_alist @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X1) @ (cHOL4.pair.FST @ X0))) @ (cHOL4.option.SOME @ (cHOL4.pair.SND @ X0))))))))) (Talist.MEM_pair_fmap_to_alist_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.alist.fmap_to_alist @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X0)) @ (cHOL4.option.SOME @ X1)))))))))) (Talist.LENGTH_fmap_to_alist,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.alist.fmap_to_alist @ X0))) @ (cHOL4.pred_set.CARD @ (cHOL4.finite_map.FDOM @ X0)))))) (Talist.fmap_to_alist_to_fmap,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ (cHOL4.alist.fmap_to_alist @ X0))) @ X0)))) (Talist.ALOOKUP_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.list.LIST_TO_SET @ X0)))))))))) (Talist.ALOOKUP_SOME_FAPPLY_alist_to_fmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.alist.alist_to_fmap @ X0)) @ X1)) @ X2))))))))) (Talist.alist_to_fmap_FAPPLY_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ (cHOL4.alist.alist_to_fmap @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.alist.alist_to_fmap @ X0)) @ X1))) @ (cHOL4.list.LIST_TO_SET @ X0)))))))) (Talist.ALOOKUP_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.alist.ALOOKUP @ ((cHOL4.list.MAP @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.pair.|comma| @ X2) @ (X0 @ X3)))))) @ X1))) @ ((cHOL4.combin.o @ (cHOL4.option.OPTION_MAP @ X0)) @ (cHOL4.alist.ALOOKUP @ X1)))))))) (Talist.FDOM_alist_to_fmap,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ (cHOL4.alist.alist_to_fmap @ X0))) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))))) (Talist.alist_to_fmap_prefix,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ X1)) @ (cHOL4.alist.alist_to_fmap @ X2))) @ ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ ((cHOL4.list.APPEND @ X0) @ X1))) @ (cHOL4.alist.alist_to_fmap @ ((cHOL4.list.APPEND @ X0) @ X2))))))))))) (Talist.alist_to_fmap_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.finite_map.FUNION @ (cHOL4.alist.alist_to_fmap @ X0)) @ (cHOL4.alist.alist_to_fmap @ X1)))))))) (Talist.ALOOKUP_prefix,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X1) @ X2)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ ((cHOL4.list.APPEND @ X1) @ X3)) @ X2)) @ (cHOL4.option.SOME @ X0)))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X1) @ X2)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ ((cHOL4.list.APPEND @ X1) @ X3)) @ X2)) @ ((cHOL4.alist.ALOOKUP @ X3) @ X2))))))))))))) (Talist.ALOOKUP_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X2)) @ (((cHOL4.option.option_CASE @ ((cHOL4.alist.ALOOKUP @ X0) @ X2)) @ ((cHOL4.alist.ALOOKUP @ X1) @ X2)) @ (^[X3]: (cHOL4.option.SOME @ X3))))))))))) (Talist.FUPDATE_LIST_EQ_APPEND_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X0)) @ (cHOL4.alist.alist_to_fmap @ ((cHOL4.list.APPEND @ (cHOL4.list.REVERSE @ X0)) @ (cHOL4.alist.fmap_to_alist @ X1))))))))) (Talist.FLOOKUP_FUPDATE_LIST_ALOOKUP_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X1) @ X2)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.FUPDATE_LIST @ X3) @ (cHOL4.list.REVERSE @ X1))) @ X2)) @ (cHOL4.option.SOME @ X0)))))))))))) (Talist.FLOOKUP_FUPDATE_LIST_ALOOKUP_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X0) @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.FUPDATE_LIST @ X2) @ (cHOL4.list.REVERSE @ X0))) @ X1)) @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X1)))))))))) (Talist.FUNION_alist_to_fmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ (cHOL4.alist.alist_to_fmap @ X0)) @ X1)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ (cHOL4.list.REVERSE @ X0)))))))) (Talist.alist_to_fmap_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X2))) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ ((cHOL4.list.MAP @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ (X0 @ X3)) @ (X1 @ X4)))))) @ X2))) @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ ((cHOL4.finite_map.o_f @ X1) @ (cHOL4.alist.alist_to_fmap @ X2)))))))))))) (Talist.alist_to_fmap_to_alist,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.alist.fmap_to_alist @ (cHOL4.alist.alist_to_fmap @ X0))) @ ((cHOL4.list.MAP @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.option.THE @ ((cHOL4.alist.ALOOKUP @ X0) @ X1))))) @ (cHOL4.list.SET_TO_LIST @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))))))) (Talist.alist_to_fmap_to_alist_PERM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))) @ ((cHOL4.sorting.PERM @ (cHOL4.alist.fmap_to_alist @ (cHOL4.alist.alist_to_fmap @ X0))) @ X0))))) (Talist.ALOOKUP_LEAST_EL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))) @ (cHOL4.option.SOME @ ((cHOL4.list.EL @ (cHOL4.while.LEAST @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X2) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))) @ X1)))) @ ((cHOL4.list.MAP @ cHOL4.pair.SND) @ X0)))) @ cHOL4.option.NONE))))))) (Talist.ALOOKUP_ALL_DISTINCT_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X2))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ (cHOL4.list.LIST_TO_SET @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.alist.ALOOKUP @ X2) @ X1)) @ (cHOL4.option.SOME @ X0)))))))))) (Talist.ALL_DISTINCT_fmap_to_alist_keys,(cHOL4.bool.! @ (^[X0]: (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ (cHOL4.alist.fmap_to_alist @ X0)))))) (Talist.fmap_to_alist_inj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.alist.fmap_to_alist @ X0)) @ (cHOL4.alist.fmap_to_alist @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Talist.fmap_to_alist_preserves_FDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ (cHOL4.alist.fmap_to_alist @ X0))) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ (cHOL4.alist.fmap_to_alist @ X1))))))))) (Talist.PERM_fmap_to_alist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ (cHOL4.alist.fmap_to_alist @ X1)) @ (cHOL4.alist.fmap_to_alist @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Talist.alist_to_fmap_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))) @ ((cHOL4.min.= @ (cHOL4.alist.alist_to_fmap @ X0)) @ (cHOL4.alist.alist_to_fmap @ X1)))))))) (Tarithmetic.ADD,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.num.SUC @ X1)) @ X0)) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))))) (Tarithmetic.NUMERAL_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X0)))) (Tarithmetic.ALT_ZERO,((cHOL4.min.= @ cHOL4.num.0) @ cHOL4.num.0)) (Tarithmetic.BIT1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.num.SUC @ cHOL4.num.0))))))) (Tarithmetic.BIT2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))))))) (Tarithmetic.nat_elim__magic,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.nat_elim__magic @ X0)) @ X0)))) (Tarithmetic.SUB,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ cHOL4.num.0) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.- @ X0) @ X1)))))))))) (Tarithmetic.MULT,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X0)))))))) (Tarithmetic.EXP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.arithmetic.* @ X0) @ ((cHOL4.arithmetic.EXP @ X0) @ X1))))))))) (Tarithmetic.GREATER_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ X0))))))) (Tarithmetic.LESS_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tarithmetic.GREATER_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.> @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tarithmetic.EVEN,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ cHOL4.num.0)) @ cHOL4.bool.T)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ (cHOL4.num.SUC @ X0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X0))))))) (Tarithmetic.ODD,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ cHOL4.num.0)) @ cHOL4.bool.F)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ (cHOL4.num.SUC @ X0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ X0))))))) (Tarithmetic.num_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.num_CASE @ cHOL4.num.0) @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.num_CASE @ (cHOL4.num.SUC @ X2)) @ X0) @ X1)) @ (X1 @ X2)))))))))) (Tarithmetic.FUNPOW,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X0) @ cHOL4.num.0) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X0) @ (cHOL4.num.SUC @ X2)) @ X1)) @ (((cHOL4.arithmetic.FUNPOW @ X0) @ X2) @ (X0 @ X1))))))))))) (Tarithmetic.NRC,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X0) @ cHOL4.num.0) @ X1) @ X2)) @ ((cHOL4.min.= @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X0) @ (cHOL4.num.SUC @ X3)) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((X0 @ X1) @ X4)) @ ((((cHOL4.arithmetic.NRC @ X0) @ X3) @ X4) @ X2))))))))))))))) (Tarithmetic.FACT,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.arithmetic.FACT @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.FACT @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X0)) @ (cHOL4.arithmetic.FACT @ X0))))))) (Tarithmetic.DIVISION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.DIV @ X1) @ X0)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ X0)))))))) (Tarithmetic.DIV2_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.DIV2 @ X0)) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Tarithmetic.MAX_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ X1) @ X0))))))) (Tarithmetic.MIN_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ X0) @ X1))))))) (Tarithmetic.ABS_DIFF_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ ((cHOL4.arithmetic.- @ X0) @ X1)))))))) (Tarithmetic.findq_def,((cHOL4.min.= @ cHOL4.arithmetic.findq) @ ((cHOL4.relation.WFREC @ (cHOL4.prim_rec.measure @ (cHOL4.pair.UNCURRY @ (^[X0]: (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((cHOL4.arithmetic.- @ X1) @ X2)))))))) @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X0]: (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ X0) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X4)) @ X0) @ (X3 @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.pair.|comma| @ X1) @ X4)))))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)))))))))))) (Tarithmetic.DIVMOD_DEF,((cHOL4.min.= @ cHOL4.arithmetic.DIVMOD) @ ((cHOL4.relation.WFREC @ (cHOL4.prim_rec.measure @ ((cHOL4.combin.o @ cHOL4.pair.FST) @ cHOL4.pair.SND))) @ (^[X0]: (cHOL4.pair.UNCURRY @ (^[X1]: (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ cHOL4.num.0)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X4]: (X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X1) @ X4)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X2) @ ((cHOL4.arithmetic.* @ X3) @ X4))) @ X3))))) @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))))) (Tarithmetic.MODEQ_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.arithmetic.MODEQ @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X0)) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X4) @ X0)) @ X2)))))))))))))) (Tarithmetic.ONE,((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ cHOL4.num.0))) (Tarithmetic.TWO,((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tarithmetic.NORM_0,((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ cHOL4.num.0)) @ cHOL4.num.0)) (Tarithmetic.num_case_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.arithmetic.num_CASE @ X2) @ X1) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ X1) @ (X0 @ (cHOL4.prim_rec.PRE @ X2))))))))))) (Tarithmetic.SUC_NOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0)))))) (Tarithmetic.ADD_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0)) @ X0)))) (Tarithmetic.ADD_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tarithmetic.ADD_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X1) @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.num.SUC @ X1)) @ X0)) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))))))) (Tarithmetic.ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))) (Tarithmetic.ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))) (Tarithmetic.ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2))))))))) (Tarithmetic.num_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tarithmetic.NOT_ZERO_LT_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) (Tarithmetic.LESS_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0))))))))) (Tarithmetic.LESS_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X2))))))))) (Tarithmetic.LESS_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))) (Tarithmetic.LESS_LESS_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.num.SUC @ X0))))))))) (Tarithmetic.transitive_measure,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.transitive @ (cHOL4.prim_rec.measure @ X0))))) (Tarithmetic.LESS_MONO_REV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tarithmetic.LESS_MONO_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tarithmetic.LESS_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tarithmetic.OR_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tarithmetic.LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tarithmetic.LESS_SUC_EQ_COR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ X1)))) @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tarithmetic.LESS_NOT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.num.SUC @ X0))))) @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tarithmetic.LESS_0_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) (Tarithmetic.LESS_CASES_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))) @ ((cHOL4.prim_rec.< @ X1) @ X0))))))) (Tarithmetic.LESS_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))) (Tarithmetic.ADD_INV_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))) (Tarithmetic.LESS_EQ_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))))))) (Tarithmetic.LESS_EQ_ADD_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0))))))))) (Tarithmetic.LESS_STRONG_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.num.SUC @ X2)) @ X1)) @ X0))))))))) (Tarithmetic.LESS_EQ_SUC_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.num.SUC @ X0))))) (Tarithmetic.LESS_ADD_NONZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) (Tarithmetic.LESS_EQ_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0)))))))) (Tarithmetic.NOT_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))) (Tarithmetic.SUB_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ cHOL4.num.0)) @ X0))))) (Tarithmetic.SUB_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tarithmetic.ADD1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tarithmetic.SUC_SUB1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Tarithmetic.PRE_SUB1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ X0)) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tarithmetic.MULT_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) (Tarithmetic.MULT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Tarithmetic.MULT_LEFT_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ X0)))) (Tarithmetic.MULT_RIGHT_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Tarithmetic.MULT_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))))))) (Tarithmetic.MULT_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X1) @ X0))))))) (Tarithmetic.MULT_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X1) @ X0))))))) (Tarithmetic.RIGHT_ADD_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tarithmetic.LEFT_ADD_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ ((cHOL4.arithmetic.* @ X2) @ X1)))))))))) (Tarithmetic.MULT_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2))) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ X2))))))))) (Tarithmetic.SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X1)) @ X0))))))) (Tarithmetic.PRE_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.prim_rec.PRE @ X0)) @ X1))))))) (Tarithmetic.ADD_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tarithmetic.ADD_EQ_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tarithmetic.ADD_INV_0_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))) (Tarithmetic.PRE_SUC_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.prim_rec.PRE @ X1))) @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ X1)))))))) (Tarithmetic.INV_PRE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ X0)) @ (cHOL4.prim_rec.PRE @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tarithmetic.LESS_SUC_NOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.num.SUC @ X0))))))))) (Tarithmetic.ADD_EQ_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.- @ X2) @ X1))))))))))) (Tarithmetic.LESS_MONO_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tarithmetic.LESS_MONO_ADD_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))) (Tarithmetic.LESS_MONO_ADD_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))) (Tarithmetic.LT_ADD_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))) (Tarithmetic.LT_ADD_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ ((cHOL4.arithmetic.+ @ X2) @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))) (Tarithmetic.EQ_MONO_ADD_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tarithmetic.LESS_EQ_MONO_ADD_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))))) (Tarithmetic.LESS_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X2))) @ ((cHOL4.arithmetic.<= @ X0) @ X2))))))))) (Tarithmetic.LESS_EQ_LESS_EQ_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ X3))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X2) @ X3)))))))))))) (Tarithmetic.LESS_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ X0) @ X0)))) (Tarithmetic.LESS_IMP_LESS_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tarithmetic.LESS_MONO_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tarithmetic.LESS_MONO_MULT2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ X3))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ X3)))))))))))) (Tarithmetic.RIGHT_SUB_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tarithmetic.LEFT_SUB_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ ((cHOL4.arithmetic.* @ X2) @ X1)))))))))) (Tarithmetic.LESS_ADD_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tarithmetic.EXP_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X2) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ X2) @ X0)) @ ((cHOL4.arithmetic.EXP @ X2) @ X1)))))))))) (Tarithmetic.NOT_ODD_EQ_EVEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X0))) @ ((cHOL4.arithmetic.+ @ X1) @ X1)))))))) (Tarithmetic.MULT_SUC_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.arithmetic.* @ X1) @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.min.= @ X2) @ X1))))))))) (Tarithmetic.MULT_EXP_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X1)) @ X0))) @ ((cHOL4.arithmetic.* @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X1)) @ X0)))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tarithmetic.LESS_EQUAL_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tarithmetic.LESS_ADD_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tarithmetic.ZERO_LESS_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ cHOL4.num.0) @ X0)))) (Tarithmetic.LESS_EQ_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tarithmetic.LESS_OR_EQ_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X1)))))))))) (Tarithmetic.WOP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (cHOL4.bool.~ @ (X0 @ X2)))))))))))) (Tarithmetic.COMPLETE_INDUCTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (X0 @ X2))))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tarithmetic.FORALL_NUM_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1)))))))))) (Tarithmetic.SUB_MONO_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.arithmetic.- @ X0) @ X1))))))) (Tarithmetic.SUB_PLUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2))))))))) (Tarithmetic.INV_PRE_LESS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.prim_rec.PRE @ X0)) @ (cHOL4.prim_rec.PRE @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Tarithmetic.INV_PRE_LESS_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.prim_rec.PRE @ X1)) @ (cHOL4.prim_rec.PRE @ X0))) @ ((cHOL4.arithmetic.<= @ X1) @ X0)))))))) (Tarithmetic.SUB_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X0)))))) (Tarithmetic.SUB_EQ_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tarithmetic.SUB_LESS_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.- @ X0) @ X1)))))))) (Tarithmetic.SUB_LESS_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tarithmetic.LESS_SUB_ADD_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0))))))))) (Tarithmetic.TIMES2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.+ @ X0) @ X0))))) (Tarithmetic.LESS_MULT_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ X0)) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))) (Tarithmetic.MULT_MONO_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ X0)) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tarithmetic.EQ_ADD_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tarithmetic.EQ_ADD_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tarithmetic.EQ_MULT_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tarithmetic.ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X1)) @ X0)))))) (Tarithmetic.LESS_EQ_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0)) @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.- @ X1) @ X0))))))))))) (Tarithmetic.SUB_EQUAL_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X0)) @ cHOL4.num.0)))) (Tarithmetic.LESS_EQ_SUB_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))))))))))) (Tarithmetic.NOT_SUC_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ X1))) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))) (Tarithmetic.SUB_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0)))))))))) (Tarithmetic.LESS_IMP_LESS_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tarithmetic.LESS_EQ_IMP_LESS_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tarithmetic.SUB_LESS_EQ_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.+ @ X0) @ X2))))))))))) (Tarithmetic.SUB_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ X2) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ ((cHOL4.arithmetic.- @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tarithmetic.CANCEL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ ((cHOL4.arithmetic.- @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tarithmetic.NOT_EXP_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X1)) @ X0)) @ cHOL4.num.0))))))) (Tarithmetic.ZERO_LESS_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X1)) @ X0))))))) (Tarithmetic.ODD_OR_EVEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tarithmetic.LESS_EXP_SUC_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X1))) @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X1))) @ (cHOL4.num.SUC @ X0)))))))) (Tarithmetic.LESS_LESS_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))) (Tarithmetic.GREATER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))) (Tarithmetic.LESS_EQ_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))) (Tarithmetic.LESS_EQUAL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ X0) @ X2)))))))))) (Tarithmetic.LESS_EQ_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ X0) @ X2)))))))))) (Tarithmetic.NOT_LESS_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ X0))))))) (Tarithmetic.LESS_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) (Tarithmetic.MULT_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tarithmetic.MULT_EQ_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tarithmetic.MULT_EQ_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tarithmetic.LESS_MULT2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Tarithmetic.ZERO_LESS_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)))))))) (Tarithmetic.ZERO_LESS_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)))))))) (Tarithmetic.LESS_EQ_LESS_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X2))))))))) (Tarithmetic.LESS_LESS_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X2))))))))) (Tarithmetic.FACT_LESS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.FACT @ X0))))) (Tarithmetic.EVEN_ODD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ X0)))))) (Tarithmetic.ODD_EVEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X0)))))) (Tarithmetic.EVEN_OR_ODD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.arithmetic.ODD @ X0))))) (Tarithmetic.EVEN_AND_ODD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.arithmetic.ODD @ X0)))))) (Tarithmetic.EVEN_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.arithmetic.EVEN @ X1)))))))) (Tarithmetic.EVEN_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bool.\/ @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.arithmetic.EVEN @ X1)))))))) (Tarithmetic.ODD_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.arithmetic.ODD @ X1))))))))) (Tarithmetic.ODD_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.arithmetic.ODD @ X1)))))))) (Tarithmetic.EVEN_DOUBLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.arithmetic.EVEN @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tarithmetic.ODD_DOUBLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.arithmetic.ODD @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))) (Tarithmetic.EVEN_ODD_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))) @ ((cHOL4.min.==> @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))))) (Tarithmetic.EVEN_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))) (Tarithmetic.ODD_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))))))) (Tarithmetic.EVEN_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ (cHOL4.arithmetic.EVEN @ X0))) @ (cHOL4.arithmetic.EVEN @ ((cHOL4.arithmetic.EXP @ X0) @ X1)))))))) (Tarithmetic.EQ_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0)))))))) (Tarithmetic.ADD_MONO_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ ((cHOL4.arithmetic.<= @ X1) @ X2))))))))) (Tarithmetic.LE_ADD_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ ((cHOL4.arithmetic.<= @ X1) @ X2))))))))) (Tarithmetic.LE_ADD_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ ((cHOL4.arithmetic.<= @ X1) @ X2))))))))) (Tarithmetic.NOT_SUC_LESS_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ cHOL4.num.0))))) (Tarithmetic.NOT_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X1)) @ X0))))))) (Tarithmetic.NOT_NUM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X1)) @ X0)))))))) (Tarithmetic.NOT_GREATER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.> @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tarithmetic.NOT_GREATER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.>= @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tarithmetic.SUC_ONE_ADD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))) (Tarithmetic.SUC_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.num.SUC @ X1)) @ X0))))))) (Tarithmetic.NOT_SUC_ADD_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ X0))))))) (Tarithmetic.MULT_LESS_EQ_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ X0)) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ X1)))))))))) (Tarithmetic.LE_MULT_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X1) @ X2)))))))))) (Tarithmetic.LE_MULT_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X0) @ X2)))))))))) (Tarithmetic.LT_MULT_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ X2)))))))))) (Tarithmetic.LT_MULT_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X2)))))))))) (Tarithmetic.LT_MULT_CANCEL_LBARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.* @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) (Tarithmetic.LT_MULT_CANCEL_RBARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))))) (Tarithmetic.LE_MULT_CANCEL_LBARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.* @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))))))) (Tarithmetic.LE_MULT_CANCEL_RBARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tarithmetic.SUB_LEFT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)))))))))) (Tarithmetic.SUB_RIGHT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ X2) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)))))))))) (Tarithmetic.SUB_LEFT_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)))))))))) (Tarithmetic.SUB_RIGHT_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tarithmetic.SUB_LEFT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)))))))) (Tarithmetic.SUB_LEFT_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ cHOL4.num.0)))))))))) (Tarithmetic.SUB_RIGHT_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tarithmetic.SUB_LEFT_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1))))))))) (Tarithmetic.SUB_RIGHT_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)))))))))) (Tarithmetic.SUB_LEFT_GREATER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ ((cHOL4.arithmetic.>= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1))))))))) (Tarithmetic.SUB_RIGHT_GREATER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.>= @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ X2)))))))))) (Tarithmetic.SUB_LEFT_GREATER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.> @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)) @ ((cHOL4.arithmetic.> @ X0) @ cHOL4.num.0)))))))))) (Tarithmetic.SUB_RIGHT_GREATER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.> @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tarithmetic.SUB_LEFT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X1) @ X2))))))))))) (Tarithmetic.SUB_RIGHT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ cHOL4.num.0))))))))))) (Tarithmetic.LE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))))) (Tarithmetic.DA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X1)) @ X2))) @ ((cHOL4.prim_rec.< @ X2) @ X1)))))))))))) (Tarithmetic.MOD_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.num.0)))) (Tarithmetic.MOD_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0)))) (Tarithmetic.DIV_LESS_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.DIV @ X1) @ X0)) @ X1))))))) (Tarithmetic.DIV_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ X3))) @ ((cHOL4.prim_rec.< @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X1) @ X0)) @ X2))))))))) (Tarithmetic.MOD_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X0)) @ X2))) @ ((cHOL4.prim_rec.< @ X2) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ X2))))))))) (Tarithmetic.DIV_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ X1)) @ X0)) @ X2))))))))) (Tarithmetic.LESS_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ X1))))))) (Tarithmetic.MOD_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X0)) @ cHOL4.num.0))))))) (Tarithmetic.ZERO_MOD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ cHOL4.num.0) @ X0)) @ cHOL4.num.0))))) (Tarithmetic.ZERO_DIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ cHOL4.num.0) @ X0)) @ cHOL4.num.0))))) (Tarithmetic.MOD_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ X1)) @ X0)) @ X1))))))))) (Tarithmetic.MOD_TIMES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X2)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X2) @ X0)))))))))) (Tarithmetic.MOD_TIMES_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X2)) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ X0) @ X2)) @ X0)))))))))) (Tarithmetic.MOD_PLUS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ ((cHOL4.arithmetic.MOD @ X2) @ X0))) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X0)))))))))) (Tarithmetic.MOD_MOD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))))))) (Tarithmetic.LESS_DIV_EQ_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ X1)) @ cHOL4.num.0))))))) (Tarithmetic.MULT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X0)) @ X1))))))) (Tarithmetic.ADD_DIV_ADD_DIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X2)) @ X0)) @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ X0))))))))))) (Tarithmetic.ADD_DIV_RWT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ X0)) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.DIV @ X1) @ X0)) @ ((cHOL4.arithmetic.DIV @ X2) @ X0)))))))))))) (Tarithmetic.MOD_MULT_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.* @ X1) @ X0))) @ X1)) @ ((cHOL4.arithmetic.MOD @ X2) @ X1)))))))))) (Tarithmetic.DIV_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.num.SUC @ cHOL4.num.0))) @ X0)))) (Tarithmetic.DIV_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Tarithmetic.DIVMOD_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ X0)) @ cHOL4.num.0)))))) (Tarithmetic.DIV_DIV_DIV_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.DIV @ X2) @ X0)) @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))))) (Tarithmetic.SUC_PRE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.prim_rec.PRE @ X0))) @ X0))))) (Tarithmetic.DIV_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.DIV @ X0) @ X1)) @ X0))))))) (Tarithmetic.MOD_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ X1))))))) (Tarithmetic.ADD_MODULUS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0))))))))) (Tarithmetic.ADD_MODULUS_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))))))) (Tarithmetic.ADD_MODULUS_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))))))) (Tarithmetic.DIV_P,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.arithmetic.DIV @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X2)) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X2)) @ (X0 @ X3)))))))))))))))) (Tarithmetic.DIV_P_UNIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.arithmetic.DIV @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X2)) @ X4))) @ ((cHOL4.prim_rec.< @ X4) @ X2))) @ (X0 @ X3))))))))))))))) (Tarithmetic.MOD_P,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.arithmetic.MOD @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X2)) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X2)) @ (X0 @ X4)))))))))))))))) (Tarithmetic.MOD_P_UNIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.arithmetic.MOD @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X2)) @ X4))) @ ((cHOL4.prim_rec.< @ X4) @ X2))) @ (X0 @ X4))))))))))))))) (Tarithmetic.MOD_TIMES2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ ((cHOL4.arithmetic.MOD @ X2) @ X0))) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.* @ X1) @ X2)) @ X0)))))))))) (Tarithmetic.MOD_COMMON_FACTOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ ((cHOL4.arithmetic.MOD @ X1) @ X2))) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X0) @ X2))))))))))) (Tarithmetic.X_MOD_Y_EQ_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ X0)) @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Tarithmetic.DIV_LE_MONOTONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ X2))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.DIV @ X1) @ X0)) @ ((cHOL4.arithmetic.DIV @ X2) @ X0)))))))))) (Tarithmetic.LE_LT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tarithmetic.X_LE_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ X2))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ X1)))))))))) (Tarithmetic.X_LT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ X2))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ X1)))))))))) (Tarithmetic.DIV_LT_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.DIV @ X1) @ X2)) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.* @ X0) @ X2))))))))))) (Tarithmetic.DIV_LE_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.DIV @ X1) @ X2)) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))) (Tarithmetic.DIV_EQ_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X0)) @ X2)))))))))))) (Tarithmetic.DIV_MOD_MOD_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.DIV @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.MOD @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2))) @ X1)))))))))) (Tarithmetic.MULT_EQ_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ X1)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.DIV @ X0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ X2)) @ cHOL4.num.0))))))))))) (Tarithmetic.NUMERAL_MULT_EQ_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ cHOL4.num.0))))))))))) (Tarithmetic.MOD_EQ_0_DIVISOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.* @ X2) @ X0))))))))))) (Tarithmetic.MOD_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.DIV @ X1) @ X0))) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.num.SUC @ X1)) @ X0)) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MOD @ X1) @ X0))))))))) (Tarithmetic.MOD_SUC_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.num.SUC @ X1)) @ X0)) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.DIV @ X1) @ X0))) @ X0)))))))))) (Tarithmetic.ONE_MOD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tarithmetic.ONE_MOD_IFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tarithmetic.MOD_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ X1))))))) (Tarithmetic.MOD_LIFT_PLUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.MOD @ X0) @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ X2)))))))))) (Tarithmetic.MOD_LIFT_PLUS_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ X2))) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.MOD @ X0) @ X1)))))))))))) (Tarithmetic.num_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X4) @ X0))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (cHOL4.num.SUC @ X6))) @ ((cHOL4.min.= @ (X5 @ X6)) @ (X1 @ X6)))))))) @ ((cHOL4.min.= @ (((cHOL4.arithmetic.num_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.arithmetic.num_CASE @ X3) @ X0) @ X1)))))))))))))))) (Tarithmetic.SUC_ELIM_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.num.SUC @ X1)) @ X1)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((X0 @ X1) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tarithmetic.SUC_ELIM_NUMERALS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ (cHOL4.num.SUC @ X2))) @ ((X0 @ X2) @ (cHOL4.num.SUC @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ ((X0 @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ ((X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))))))))))) (Tarithmetic.SUB_ELIM_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X2 @ ((cHOL4.arithmetic.- @ X1) @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X3))) @ (X2 @ cHOL4.num.0))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ X0) @ X3))) @ (X2 @ X3))))))))))))) (Tarithmetic.PRE_ELIM_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (X1 @ (cHOL4.prim_rec.PRE @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ (X1 @ cHOL4.num.0))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X2))) @ (X1 @ X2))))))))))) (Tarithmetic.MULT_INCREASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Tarithmetic.EXP_ALWAYS_BIG_ENOUGH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.EXP @ X0) @ X2)))))))))) (Tarithmetic.EXP_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)))))))) (Tarithmetic.ZERO_LT_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.EXP @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))))))) (Tarithmetic.EXP_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Tarithmetic.EXP_EQ_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tarithmetic.EXP_BASE_LE_MONO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X0) @ X2)) @ ((cHOL4.arithmetic.EXP @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ X2) @ X1)))))))))) (Tarithmetic.EXP_BASE_LT_MONO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.EXP @ X0) @ X2)) @ ((cHOL4.arithmetic.EXP @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ X2) @ X1)))))))))) (Tarithmetic.EXP_BASE_INJECTIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tarithmetic.EXP_BASE_LEQ_MONO_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X2) @ X1)) @ ((cHOL4.arithmetic.EXP @ X2) @ X0)))))))))) (Tarithmetic.EXP_BASE_LEQ_MONO_SUC_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X2)) @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X2)) @ X0)))))))))) (Tarithmetic.EXP_BASE_LE_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X2) @ X1)) @ ((cHOL4.arithmetic.EXP @ X2) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))))))))) (Tarithmetic.X_LE_X_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.EXP @ X0) @ X1)))))))) (Tarithmetic.X_LT_EXP_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.EXP @ X1) @ X0)))))))) (Tarithmetic.ZERO_EXP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ cHOL4.num.0) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))))) (Tarithmetic.X_LT_EXP_X_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.EXP @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))))))) (Tarithmetic.EXP_EXP_LT_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.EXP @ X1) @ X0)) @ ((cHOL4.arithmetic.EXP @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)))))))))) (Tarithmetic.EXP_EXP_LE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X1) @ X0)) @ ((cHOL4.arithmetic.EXP @ X2) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))))))))) (Tarithmetic.EXP_EXP_INJECTIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ X2)) @ ((cHOL4.arithmetic.EXP @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Tarithmetic.EXP_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.EXP @ X2) @ X0)) @ ((cHOL4.arithmetic.EXP @ X2) @ X1))))))))))) (Tarithmetic.EXP_SUB_NUMERAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ X1)) @ ((cHOL4.arithmetic.EXP @ X1) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ X1)) @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))))))))) (Tarithmetic.EXP_BASE_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ ((cHOL4.arithmetic.* @ X1) @ X2)) @ X0)) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ X1) @ X0)) @ ((cHOL4.arithmetic.EXP @ X2) @ X0)))))))))) (Tarithmetic.EXP_EXP_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X1) @ ((cHOL4.arithmetic.* @ X2) @ X0))) @ ((cHOL4.arithmetic.EXP @ ((cHOL4.arithmetic.EXP @ X1) @ X2)) @ X0))))))))) (Tarithmetic.MAX_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ X0) @ X1)) @ ((cHOL4.arithmetic.MAX @ X1) @ X0))))))) (Tarithmetic.MIN_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X0) @ X1)) @ ((cHOL4.arithmetic.MIN @ X1) @ X0))))))) (Tarithmetic.MAX_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ X0) @ ((cHOL4.arithmetic.MAX @ X1) @ X2))) @ ((cHOL4.arithmetic.MAX @ ((cHOL4.arithmetic.MAX @ X0) @ X1)) @ X2))))))))) (Tarithmetic.MIN_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.MIN @ X1) @ X2))) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.MIN @ X0) @ X1)) @ X2))))))))) (Tarithmetic.MIN_MAX_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X0) @ X1)) @ ((cHOL4.arithmetic.MAX @ X0) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tarithmetic.MIN_MAX_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MIN @ X0) @ X1)) @ ((cHOL4.arithmetic.MAX @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tarithmetic.MIN_MAX_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MIN @ X0) @ X1)) @ ((cHOL4.arithmetic.MAX @ X0) @ X1))))))) (Tarithmetic.MIN_MAX_PRED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.bool./\ @ (X0 @ ((cHOL4.arithmetic.MIN @ X1) @ X2))) @ (X0 @ ((cHOL4.arithmetic.MAX @ X1) @ X2))))))))))) (Tarithmetic.MIN_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MIN @ X1) @ X0)) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ X0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.MIN @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ X0))))))))))) (Tarithmetic.MAX_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.MAX @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MAX @ X1) @ X0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ X0) @ X2))))))))))) (Tarithmetic.MIN_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MIN @ X1) @ X0)) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.arithmetic.<= @ X0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X2) @ ((cHOL4.arithmetic.MIN @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ X0))))))))))) (Tarithmetic.MAX_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X2) @ ((cHOL4.arithmetic.MAX @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MAX @ X1) @ X0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.arithmetic.<= @ X0) @ X2))))))))))) (Tarithmetic.MIN_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ cHOL4.num.0) @ X0)) @ cHOL4.num.0))))) (Tarithmetic.MAX_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ X0) @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ cHOL4.num.0) @ X0)) @ X0))))) (Tarithmetic.MIN_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X0) @ X0)) @ X0)))) (Tarithmetic.MAX_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ X0) @ X0)) @ X0)))) (Tarithmetic.EXISTS_GREATEST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.> @ X2) @ X1)) @ (cHOL4.bool.~ @ (X0 @ X2))))))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.> @ X2) @ X1)) @ (cHOL4.bool.~ @ (X0 @ X2)))))))))))) (Tarithmetic.EXISTS_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool.\/ @ (X0 @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X2]: (X0 @ (cHOL4.num.SUC @ X2))))))))) (Tarithmetic.FORALL_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.num.SUC @ X1))))))))) (Tarithmetic.BOUNDED_FORALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ (X0 @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ X2)))))))))))) (Tarithmetic.BOUNDED_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (X0 @ X2))))) @ ((cHOL4.bool.\/ @ (X0 @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ X2)))))))))))) (Tarithmetic.transitive_monotone,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((X0 @ (X1 @ X2)) @ (X1 @ (cHOL4.num.SUC @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ ((X0 @ (X1 @ X3)) @ (X1 @ X2))))))))))))) (Tarithmetic.STRICTLY_INCREASING_TC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.prim_rec.< @ (X0 @ X2)) @ (X0 @ X1))))))))))) (Tarithmetic.STRICTLY_INCREASING_ONE_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1)))))) @ (cHOL4.bool.ONE_ONE @ X0))))) (Tarithmetic.ONE_ONE_UNBOUNDED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.ONE_ONE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.prim_rec.< @ X1) @ (X0 @ X2)))))))))) (Tarithmetic.STRICTLY_INCREASING_UNBOUNDED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.prim_rec.< @ X2) @ (X0 @ X1)))))))))) (Tarithmetic.NOT_STRICTLY_DECREASING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ X1)))))))) (Tarithmetic.ABS_DIFF_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X1)) @ ((cHOL4.arithmetic.ABS_DIFF @ X1) @ X0))))))) (Tarithmetic.ABS_DIFF_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X1)) @ ((cHOL4.arithmetic.ABS_DIFF @ X1) @ X0))))))) (Tarithmetic.ABS_DIFF_EQS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X0)) @ cHOL4.num.0)))) (Tarithmetic.ABS_DIFF_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tarithmetic.ABS_DIFF_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ cHOL4.num.0) @ X0)) @ X0))))) (Tarithmetic.ABS_DIFF_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X1)) @ ((cHOL4.arithmetic.ABS_DIFF @ X1) @ X2)))))))))) (Tarithmetic.ABS_DIFF_ADD_SAME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.ABS_DIFF @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X1))))))))) (Tarithmetic.LT_SUB_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ ((cHOL4.arithmetic.- @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ X0) @ X2)))))))))) (Tarithmetic.LE_SUB_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ ((cHOL4.arithmetic.- @ X2) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ X2)))))))))) (Tarithmetic.ABS_DIFF_SUMS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.ABS_DIFF @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X2) @ X3))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.ABS_DIFF @ X0) @ X2)) @ ((cHOL4.arithmetic.ABS_DIFF @ X1) @ X3)))))))))))) (Tarithmetic.FUNPOW_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X0) @ (cHOL4.num.SUC @ X1)) @ X2)) @ (X0 @ (((cHOL4.arithmetic.FUNPOW @ X0) @ X1) @ X2)))))))))) (Tarithmetic.FUNPOW_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X1) @ cHOL4.num.0) @ X0)) @ X0)))))) (Tarithmetic.FUNPOW_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X1) @ ((cHOL4.arithmetic.+ @ X2) @ X3)) @ X0)) @ (((cHOL4.arithmetic.FUNPOW @ X1) @ X2) @ (((cHOL4.arithmetic.FUNPOW @ X1) @ X3) @ X0)))))))))))) (Tarithmetic.FUNPOW_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (X1 @ X0))))))) (Tarithmetic.NRC_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X0) @ cHOL4.num.0) @ X1) @ X2)) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tarithmetic.NRC_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1) @ X0)) @ ((X2 @ X1) @ X0))))))))) (Tarithmetic.NRC_ADD_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.arithmetic.NRC @ X0) @ X1) @ X3) @ X4)) @ ((((cHOL4.arithmetic.NRC @ X0) @ X2) @ X4) @ X5))) @ ((((cHOL4.arithmetic.NRC @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X3) @ X5))))))))))))))) (Tarithmetic.NRC_ADD_E,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((cHOL4.arithmetic.NRC @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X3) @ X4)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((((cHOL4.arithmetic.NRC @ X0) @ X1) @ X3) @ X5)) @ ((((cHOL4.arithmetic.NRC @ X0) @ X2) @ X5) @ X4)))))))))))))))) (Tarithmetic.NRC_ADD_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X4) @ ((cHOL4.arithmetic.+ @ X3) @ X2)) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((((cHOL4.arithmetic.NRC @ X4) @ X3) @ X1) @ X5)) @ ((((cHOL4.arithmetic.NRC @ X4) @ X2) @ X5) @ X0)))))))))))))))) (Tarithmetic.NRC_SUC_RECURSE_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X3) @ (cHOL4.num.SUC @ X2)) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((((cHOL4.arithmetic.NRC @ X3) @ X2) @ X1) @ X4)) @ ((X3 @ X4) @ X0)))))))))))))) (Tarithmetic.NRC_RTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((((cHOL4.arithmetic.NRC @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3))))))))))) (Tarithmetic.RTC_NRC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((((cHOL4.arithmetic.NRC @ X0) @ X3) @ X1) @ X2))))))))))) (Tarithmetic.RTC_eq_NRC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((((cHOL4.arithmetic.NRC @ X0) @ X3) @ X1) @ X2))))))))))) (Tarithmetic.TC_eq_NRC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((((cHOL4.arithmetic.NRC @ X0) @ (cHOL4.num.SUC @ X3)) @ X1) @ X2))))))))))) (Tarithmetic.LESS_EQUAL_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2)))))))))) (Tarithmetic.MOD_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tarithmetic.EVEN_MOD2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.num.0))))) (Tarithmetic.SUC_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.MOD @ (cHOL4.num.SUC @ X2)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ ((cHOL4.arithmetic.MOD @ X2) @ X0))))))))))) (Tarithmetic.ADD_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ X3)) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X2) @ X3)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ ((cHOL4.arithmetic.MOD @ X2) @ X0))))))))))))) (Tarithmetic.MOD_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.arithmetic.+ @ X3) @ X2))) @ (X0 @ X3))))))) @ (X0 @ ((cHOL4.arithmetic.MOD @ X1) @ X2)))))))))) (Tarithmetic.DOUBLE_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))) (Tarithmetic.EXP2_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.DIV @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0))))))))) (Tarithmetic.SUB_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X0))))))) (Tarithmetic.SUB_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X1)) @ ((cHOL4.arithmetic.MOD @ X0) @ X1)))))))) (Tarithmetic.ONE_LT_MULT_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Tarithmetic.ONE_LT_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) (Tarithmetic.ONE_LT_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.EXP @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)))))))) (Tarithmetic.findq_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ X2) @ ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X3)) @ X2) @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)) @ ((cHOL4.pair.|comma| @ X1) @ X3)))))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))))) (Tarithmetic.findq_eq_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))))))) (Tarithmetic.findq_divisor,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ X0)) @ ((cHOL4.arithmetic.* @ X2) @ X1)))))))))) (Tarithmetic.DIVMOD_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ cHOL4.num.0)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.bool.LET @ (^[X3]: (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.* @ X0) @ X3))) @ X0))))) @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ X1) @ X0)))))))))))))) (Tarithmetic.MOD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ X2) @ ((cHOL4.arithmetic.* @ X1) @ X0))) @ X1)) @ ((cHOL4.arithmetic.MOD @ X2) @ X1)))))))))) (Tarithmetic.DIV_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X2) @ ((cHOL4.arithmetic.* @ X1) @ X0))) @ X1)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.DIV @ X2) @ X1)) @ X0)))))))))) (Tarithmetic.DIVMOD_CORRECT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.DIV @ X0) @ X1))) @ ((cHOL4.arithmetic.MOD @ X0) @ X1))))))))))) (Tarithmetic.DIVMOD_CALC,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ X1)) @ (cHOL4.pair.FST @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X0) @ X1))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ (cHOL4.pair.SND @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))) (Tarithmetic.MODEQ_0_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.arithmetic.MODEQ @ cHOL4.num.0) @ X1) @ X0)) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tarithmetic.MODEQ_NONZERO_MODEQUALITY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.arithmetic.MODEQ @ X0) @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0))))))))))) (Tarithmetic.MODEQ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.arithmetic.MODEQ @ X0) @ X2) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X2) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0)))))))))))) (Tarithmetic.MODEQ_INTRO_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.==> @ (((cHOL4.arithmetic.MODEQ @ X0) @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ X0)) @ ((cHOL4.arithmetic.MOD @ X1) @ X0))))))))))) (Tarithmetic.MODEQ_PLUS_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.arithmetic.MODEQ @ X4) @ X3) @ X2)) @ ((cHOL4.min.==> @ (((cHOL4.arithmetic.MODEQ @ X4) @ X1) @ X0)) @ (((cHOL4.arithmetic.MODEQ @ X4) @ ((cHOL4.arithmetic.+ @ X3) @ X1)) @ ((cHOL4.arithmetic.+ @ X2) @ X0))))))))))))))) (Tarithmetic.MODEQ_MULT_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.arithmetic.MODEQ @ X4) @ X3) @ X2)) @ ((cHOL4.min.==> @ (((cHOL4.arithmetic.MODEQ @ X4) @ X1) @ X0)) @ (((cHOL4.arithmetic.MODEQ @ X4) @ ((cHOL4.arithmetic.* @ X3) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ X0))))))))))))))) (Tarithmetic.MODEQ_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.arithmetic.MODEQ @ X0) @ X1) @ X1)))))) (Tarithmetic.MODEQ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.arithmetic.MODEQ @ X2) @ X1) @ X0)) @ (((cHOL4.arithmetic.MODEQ @ X2) @ X0) @ X1))))))))) (Tarithmetic.MODEQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.arithmetic.MODEQ @ X0) @ X1) @ X2)) @ (((cHOL4.arithmetic.MODEQ @ X0) @ X2) @ X3))) @ (((cHOL4.arithmetic.MODEQ @ X0) @ X1) @ X3))))))))))) (Tarithmetic.MODEQ_NUMERAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (((cHOL4.arithmetic.MODEQ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (((cHOL4.arithmetic.MODEQ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (((cHOL4.arithmetic.MODEQ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (((cHOL4.arithmetic.MODEQ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))))))))))) (Tarithmetic.MODEQ_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ (((cHOL4.arithmetic.MODEQ @ X1) @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ X0))))))) (Tarithmetic.MODEQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (((cHOL4.arithmetic.MODEQ @ X0) @ X0) @ cHOL4.num.0))))) (TASCIInumbers.s2n_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.s2n @ X0) @ X1) @ X2)) @ ((cHOL4.numposrep.l2n @ X0) @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.REVERSE @ X2))))))))))) (TASCIInumbers.n2s_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.n2s @ X0) @ X1) @ X2)) @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ X1) @ ((cHOL4.numposrep.n2l @ X0) @ X2))))))))))) (TASCIInumbers.HEX_primitive_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.HEX) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.bool.literal_case @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.combin.I @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ cHOL4.bool.ARB)))))))))))))))))) @ X2)))))) (TASCIInumbers.UNHEX_primitive_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.UNHEX) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.bool.literal_case @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ cHOL4.num.0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ cHOL4.bool.ARB)))))))))))))))))))))))) @ X2)))))) (TASCIInumbers.num_from_bin_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_from_bin_string) @ ((cHOL4.ASCIInumbers.s2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ cHOL4.ASCIInumbers.UNHEX))) (TASCIInumbers.num_from_oct_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_from_oct_string) @ ((cHOL4.ASCIInumbers.s2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.UNHEX))) (TASCIInumbers.num_from_dec_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_from_dec_string) @ ((cHOL4.ASCIInumbers.s2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.UNHEX))) (TASCIInumbers.num_from_hex_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_from_hex_string) @ ((cHOL4.ASCIInumbers.s2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ cHOL4.ASCIInumbers.UNHEX))) (TASCIInumbers.num_to_bin_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_to_bin_string) @ ((cHOL4.ASCIInumbers.n2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ cHOL4.ASCIInumbers.HEX))) (TASCIInumbers.num_to_oct_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_to_oct_string) @ ((cHOL4.ASCIInumbers.n2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.HEX))) (TASCIInumbers.num_to_dec_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_to_dec_string) @ ((cHOL4.ASCIInumbers.n2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.HEX))) (TASCIInumbers.num_to_hex_string_def,((cHOL4.min.= @ cHOL4.ASCIInumbers.num_to_hex_string) @ ((cHOL4.ASCIInumbers.n2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ cHOL4.ASCIInumbers.HEX))) (TASCIInumbers.fromBinString_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ASCIInumbers.fromBinString @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.list.EVERY @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ X0))) @ (cHOL4.option.SOME @ (cHOL4.ASCIInumbers.num_from_bin_string @ X0))) @ cHOL4.option.NONE))))) (TASCIInumbers.fromDecString_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ASCIInumbers.fromDecString @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.list.EVERY @ cHOL4.string.isDigit) @ X0))) @ (cHOL4.option.SOME @ (cHOL4.ASCIInumbers.num_from_dec_string @ X0))) @ cHOL4.option.NONE))))) (TASCIInumbers.fromHexString_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ASCIInumbers.fromHexString @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.list.EVERY @ cHOL4.string.isHexDigit) @ X0))) @ (cHOL4.option.SOME @ (cHOL4.ASCIInumbers.num_from_hex_string @ X0))) @ cHOL4.option.NONE))))) (TASCIInumbers.HEX_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (TASCIInumbers.HEX_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ cHOL4.num.0)) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))) (TASCIInumbers.UNHEX_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))))))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (TASCIInumbers.UNHEX_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))) (TASCIInumbers.s2n_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.s2n @ X2) @ X1) @ X0)) @ ((cHOL4.numposrep.l2n @ X2) @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.REVERSE @ (cHOL4.string.EXPLODE @ X0)))))))))))) (TASCIInumbers.n2s_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.n2s @ X2) @ X1) @ X0)) @ (cHOL4.string.IMPLODE @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ X1) @ ((cHOL4.numposrep.n2l @ X2) @ X0)))))))))))) (TASCIInumbers.UNHEX_HEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.ASCIInumbers.HEX @ X0))) @ X0))))) (TASCIInumbers.HEX_UNHEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.string.isHexDigit @ X0)) @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.ASCIInumbers.UNHEX @ X0))) @ (cHOL4.string.toUpper @ X0)))))) (TASCIInumbers.DEC_UNDEC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.string.isDigit @ X0)) @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.HEX @ (cHOL4.ASCIInumbers.UNHEX @ X0))) @ X0))))) (TASCIInumbers.s2n_n2s,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X2)) @ ((cHOL4.min.= @ (X0 @ (X1 @ X4))) @ X4)))))) @ ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.s2n @ X2) @ X0) @ (((cHOL4.ASCIInumbers.n2s @ X2) @ X1) @ X3))) @ X3))))))))))) (TASCIInumbers.n2s_s2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ ((cHOL4.list.EVERY @ ((cHOL4.combin.o @ (cHOL4.arithmetic.> @ X2)) @ X0)) @ X3))) @ ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.n2s @ X2) @ X1) @ (((cHOL4.ASCIInumbers.s2n @ X2) @ X0) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.ASCIInumbers.s2n @ X2) @ X0) @ X3)) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ (X1 @ cHOL4.num.0)) @ cHOL4.list.NIL)) @ ((cHOL4.list.MAP @ ((cHOL4.combin.o @ X1) @ X0)) @ ((cHOL4.rich_list.LASTN @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X2) @ (((cHOL4.ASCIInumbers.s2n @ X2) @ X0) @ X3)))) @ X3)))))))))))))) (TASCIInumbers.toNum_toString,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ASCIInumbers.num_from_dec_string @ (cHOL4.ASCIInumbers.num_to_dec_string @ X0))) @ X0)))) (TASCIInumbers.toString_toNum_cancel,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ASCIInumbers.num_from_dec_string @ (cHOL4.ASCIInumbers.num_to_dec_string @ X0))) @ X0)))) (TASCIInumbers.toString_inj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.num_to_dec_string @ X0)) @ (cHOL4.ASCIInumbers.num_to_dec_string @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (TASCIInumbers.toString_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.num_to_dec_string @ X0)) @ (cHOL4.ASCIInumbers.num_to_dec_string @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (TASCIInumbers.STRCAT_toString_inj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X2) @ (cHOL4.ASCIInumbers.num_to_dec_string @ X0))) @ ((cHOL4.list.APPEND @ X2) @ (cHOL4.ASCIInumbers.num_to_dec_string @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (TASCIInumbers.BIT_num_from_bin_string,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ ((cHOL4.combin.o @ (cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.ASCIInumbers.UNHEX)) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ (cHOL4.ASCIInumbers.num_from_bin_string @ X1))) @ ((cHOL4.min.= @ (cHOL4.ASCIInumbers.UNHEX @ (cHOL4.string.SUB @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (TASCIInumbers.SUB_num_to_bin_string,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ (cHOL4.ASCIInumbers.num_to_bin_string @ X1)))) @ ((cHOL4.min.= @ (cHOL4.string.SUB @ ((cHOL4.pair.|comma| @ (cHOL4.ASCIInumbers.num_to_bin_string @ X1)) @ X0))) @ (cHOL4.ASCIInumbers.HEX @ ((cHOL4.bit.BITV @ X1) @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ (cHOL4.ASCIInumbers.num_to_bin_string @ X1))) @ X0))))))))))) (TASCIInumbers.num_bin_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.ASCIInumbers.num_from_bin_string) @ cHOL4.ASCIInumbers.num_to_bin_string)) @ cHOL4.combin.I)) (TASCIInumbers.num_oct_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.ASCIInumbers.num_from_oct_string) @ cHOL4.ASCIInumbers.num_to_oct_string)) @ cHOL4.combin.I)) (TASCIInumbers.num_dec_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.ASCIInumbers.num_from_dec_string) @ cHOL4.ASCIInumbers.num_to_dec_string)) @ cHOL4.combin.I)) (TASCIInumbers.num_hex_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.ASCIInumbers.num_from_hex_string) @ cHOL4.ASCIInumbers.num_to_hex_string)) @ cHOL4.combin.I)) (Tbag.EMPTY_BAG,((cHOL4.min.= @ cHOL4.bag.EMPTY_BAG) @ (cHOL4.combin.K @ cHOL4.num.0))) (Tbag.BAG_INN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.>= @ (X2 @ X0)) @ X1))))))))) (Tbag.SUB_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_INN @ X2) @ X3) @ X0)) @ (((cHOL4.bag.BAG_INN @ X2) @ X3) @ X1)))))))))))) (Tbag.PSUB_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tbag.BAG_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ X1)) @ (((cHOL4.bag.BAG_INN @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1))))))) (Tbag.BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ (^[X2]: ((cHOL4.arithmetic.+ @ (X0 @ X2)) @ (X1 @ X2))))))))) (Tbag.BAG_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)) @ (^[X2]: ((cHOL4.arithmetic.- @ (X0 @ X2)) @ (X1 @ X2))))))))) (Tbag.BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X0)) @ ((cHOL4.arithmetic.+ @ (X1 @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (X1 @ X2))))))))) (Tbag.BAG_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INTER @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (X0 @ X2)) @ (X1 @ X2))) @ (X0 @ X2)) @ (X1 @ X2))))))))) (Tbag.BAG_MERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_MERGE @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (X0 @ X2)) @ (X1 @ X2))) @ (X1 @ X2)) @ (X0 @ X2))))))))) (Tbag.BAG_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_DELETE @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2)))))))))) (Tbag.SING_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.SING_BAG @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG)))))))) (Tbag.EL_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.EL_BAG @ X0)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ cHOL4.bag.EMPTY_BAG))))) (Tbag.SET_OF_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (^[X1]: ((cHOL4.bag.BAG_IN @ X1) @ X0)))))) (Tbag.BAG_OF_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_OF_SET @ X0)) @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0)))))) (Tbag.BAG_DISJOINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DISJOINT @ X0) @ X1)) @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (cHOL4.bag.SET_OF_BAG @ X1)))))))) (Tbag.FINITE_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (X1 @ X0)) @ (cHOL4.bool.! @ (^[X2]: (X1 @ ((cHOL4.bag.BAG_INSERT @ X2) @ X0))))))))) @ (X1 @ X0)))))))) (Tbag.BAG_CARD_RELn,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_CARD_RELn @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X2 @ cHOL4.bag.EMPTY_BAG) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((X2 @ ((cHOL4.bag.BAG_INSERT @ X3) @ X0)) @ (cHOL4.num.SUC @ X1))))))))))) @ ((X2 @ X0) @ X1)))))))))) (Tbag.BAG_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.bag.BAG_CARD_RELn @ X0) @ (cHOL4.bag.BAG_CARD @ X0)))))) (Tbag.BAG_FILTER_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_FILTER @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ (X0 @ X2)) @ (X1 @ X2)) @ cHOL4.num.0)))))))) (Tbag.BAG_IMAGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ X0) @ X1)) @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ (cHOL4.bag.FINITE_BAG @ X3)) @ (cHOL4.bag.BAG_CARD @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bag.BAG_FILTER @ (^[X4]: ((cHOL4.min.= @ (X0 @ X4)) @ X2))) @ X1))))))))) (Tbag.BAG_CHOICE_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG))) @ ((cHOL4.bag.BAG_IN @ (cHOL4.bag.BAG_CHOICE @ X0)) @ X0))))) (Tbag.BAG_REST_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_REST @ X0)) @ ((cHOL4.bag.BAG_DIFF @ X0) @ (cHOL4.bag.EL_BAG @ (cHOL4.bag.BAG_CHOICE @ X0))))))) (Tbag.ITBAG_tupled_primitive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.ITBAG_tupled @ X0)) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.bag.EMPTY_BAG)))) @ ((X1 @ ((cHOL4.pair.|comma| @ (cHOL4.bag.BAG_REST @ X3)) @ ((X0 @ (cHOL4.bag.BAG_CHOICE @ X3)) @ X2))) @ ((cHOL4.pair.|comma| @ X3) @ X2))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X3]: (^[X2]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ (cHOL4.bag.FINITE_BAG @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.bag.EMPTY_BAG)) @ X2) @ (X4 @ ((cHOL4.pair.|comma| @ (cHOL4.bag.BAG_REST @ X3)) @ ((X0 @ (cHOL4.bag.BAG_CHOICE @ X3)) @ X2))))) @ cHOL4.bool.ARB)))))))))))) (Tbag.ITBAG_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bag.ITBAG @ X0) @ X1) @ X2)) @ ((cHOL4.bag.ITBAG_tupled @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))) (Tbag.BAG_GEN_SUM_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_SUM @ X0) @ X1)) @ (((cHOL4.bag.ITBAG @ cHOL4.arithmetic.+) @ X0) @ X1))))))) (Tbag.BAG_GEN_PROD_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ X1)) @ (((cHOL4.bag.ITBAG @ cHOL4.arithmetic.*) @ X0) @ X1))))))) (Tbag.BAG_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X2) @ X1)) @ (X0 @ X2)))))))))) (Tbag.BAG_ALL_DISTINCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ (X0 @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tbag.BIG_BAG_UNION_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ X0)) @ (^[X1]: ((cHOL4.pred_set.SUM_IMAGE @ (^[X2]: (X2 @ X1))) @ X0)))))) (Tbag.mlt1_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bag.mlt1 @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X2)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.bag.BAG_UNION @ X5) @ ((cHOL4.bag.BAG_INSERT @ X3) @ cHOL4.bag.EMPTY_BAG)))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X6) @ X4)) @ ((X0 @ X6) @ X3)))))))))))))))))))))) (Tbag.bag_size_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.bag_size @ X0) @ X1)) @ (((cHOL4.bag.ITBAG @ (^[X2]: (^[X3]: ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X2))) @ X3)))) @ X1) @ cHOL4.num.0))))))) (Tbag.EMPTY_BAG_alt,((cHOL4.min.= @ cHOL4.bag.EMPTY_BAG) @ (^[X0]: cHOL4.num.0))) (Tbag.BAG_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1)))))))))) (Tbag.BAG_MERGE_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_MERGE @ X0) @ X0)) @ X0)))) (Tbag.BAG_INN_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.bag.BAG_INN @ X1) @ cHOL4.num.0) @ X0)))))) (Tbag.BAG_INN_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_INN @ X1) @ X2) @ X0)) @ ((cHOL4.prim_rec.< @ X3) @ X2))) @ (((cHOL4.bag.BAG_INN @ X1) @ X3) @ X0))))))))))) (Tbag.BAG_IN_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X1) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.bag.BAG_IN @ X1) @ X0)))))))))) (Tbag.BAG_INN_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X2) @ X0) @ ((cHOL4.bag.BAG_INSERT @ X3) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_INN @ X2) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.min.= @ X2) @ X3))) @ (((cHOL4.bag.BAG_INN @ X2) @ X0) @ X1)))))))))))) (Tbag.BAG_INN_BAG_INSERT_STRONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X2) @ X1) @ ((cHOL4.bag.BAG_INSERT @ X3) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_INN @ X2) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_INN @ X2) @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3)))))))))))))) (Tbag.BAG_IN_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X2) @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bag.BAG_IN @ X2) @ X0)) @ ((cHOL4.bag.BAG_IN @ X2) @ X1)))))))))) (Tbag.BAG_INN_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X1) @ X0) @ ((cHOL4.bag.BAG_UNION @ X2) @ X3))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_INN @ X1) @ X4) @ X2)) @ (((cHOL4.bag.BAG_INN @ X1) @ X5) @ X3))))))))))))))))) (Tbag.BAG_INN_BAG_MERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X1) @ X0) @ ((cHOL4.bag.BAG_MERGE @ X2) @ X3))) @ ((cHOL4.bool.\/ @ (((cHOL4.bag.BAG_INN @ X1) @ X0) @ X2)) @ (((cHOL4.bag.BAG_INN @ X1) @ X0) @ X3)))))))))))) (Tbag.BAG_IN_BAG_MERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ ((cHOL4.bag.BAG_MERGE @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bag.BAG_IN @ X0) @ X1)) @ ((cHOL4.bag.BAG_IN @ X0) @ X2)))))))))) (Tbag.BAG_EXTENSION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X3) @ X2) @ X0)) @ (((cHOL4.bag.BAG_INN @ X3) @ X2) @ X1)))))))))))) (Tbag.BAG_UNION_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ X2)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X1) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2))) @ ((cHOL4.bag.BAG_INSERT @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2))))))))))) (Tbag.BAG_INSERT_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ X1))))))) (Tbag.BAG_INSERT_NOT_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ cHOL4.bag.EMPTY_BAG))))))) (Tbag.BAG_INSERT_ONE_ONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X2) @ X0)) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tbag.C_BAG_INSERT_ONE_ONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2)) @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tbag.BAG_INSERT_commutes,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X1) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X0))) @ ((cHOL4.bag.BAG_INSERT @ X2) @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)))))))))) (Tbag.BAG_DECOMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2)))))))))) (Tbag.BAG_UNION_LEFT_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tbag.COMM_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X1) @ X0))))))) (Tbag.BAG_UNION_RIGHT_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tbag.ASSOC_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2))) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X2))))))))) (Tbag.BAG_UNION_EMPTY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ cHOL4.bag.EMPTY_BAG)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ cHOL4.bag.EMPTY_BAG) @ X1)) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X2) @ X3)) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.min.= @ X3) @ cHOL4.bag.EMPTY_BAG)))))))))) (Tbag.BAG_DELETE_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.bag.BAG_DELETE @ cHOL4.bag.EMPTY_BAG) @ X0) @ X1))))))) (Tbag.BAG_DELETE_commutes,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X0) @ X3) @ X1)) @ (((cHOL4.bag.BAG_DELETE @ X1) @ X4) @ X2))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X0) @ X4) @ X5)) @ (((cHOL4.bag.BAG_DELETE @ X5) @ X3) @ X2)))))))))))))))) (Tbag.BAG_DELETE_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X0) @ X1) @ X3)) @ (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ X3) @ X4)))))))))))))) (Tbag.BAG_INN_BAG_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_INN @ X2) @ X1) @ X0)) @ ((cHOL4.arithmetic.> @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X3))))))))))) (Tbag.BAG_IN_BAG_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.bag.BAG_DELETE @ X0) @ X1) @ X2))))))))) (Tbag.BAG_DELETE_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_DELETE @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2)) @ X1) @ X3)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X4]: (((cHOL4.bag.BAG_DELETE @ X2) @ X1) @ X4)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))))))))) (Tbag.BAG_DELETE_BAG_IN_up,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X3) @ X1)) @ ((cHOL4.bag.BAG_IN @ X3) @ X0)))))))))))) (Tbag.BAG_DELETE_BAG_IN_down,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.bag.BAG_IN @ X3) @ X0)))) @ ((cHOL4.bag.BAG_IN @ X3) @ X1))))))))))) (Tbag.BAG_DELETE_BAG_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X1)) @ ((cHOL4.bag.BAG_IN @ X2) @ X0))))))))) (Tbag.BAG_DELETE_concrete,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.> @ (X0 @ X2)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.arithmetic.- @ (X0 @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (X0 @ X3))))))))))))) (Tbag.BAG_UNION_DIFF_eliminate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ X0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X0)) @ X1))))))) (Tbag.BAG_INSERT_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X1) @ X3)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.min.= @ X1) @ X0))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X4))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.bag.BAG_INSERT @ X1) @ X4)))))))))))))))) (Tbag.BAG_DELETE_TWICE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X0) @ X1) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X0) @ X2) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (((cHOL4.bag.BAG_DELETE @ X3) @ X2) @ X5)) @ (((cHOL4.bag.BAG_DELETE @ X4) @ X1) @ X5)))))))))))))))) (Tbag.SING_BAG_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bag.SING_BAG @ ((cHOL4.bag.BAG_INSERT @ X0) @ cHOL4.bag.EMPTY_BAG))))) (Tbag.EL_BAG_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.bag.EL_BAG @ X0)) @ (cHOL4.bag.EL_BAG @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tbag.EL_BAG_INSERT_squeeze,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.bag.EL_BAG @ X0)) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG)))))))))) (Tbag.SING_EL_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bag.SING_BAG @ (cHOL4.bag.EL_BAG @ X0))))) (Tbag.BAG_INSERT_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ (cHOL4.bag.EL_BAG @ X1)) @ X0))))))) (Tbag.BAG_INSERT_EQ_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_INSERT @ X0) @ X3)) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bag.BAG_IN @ X0) @ X1)) @ ((cHOL4.bag.BAG_IN @ X0) @ X2)))))))))))) (Tbag.BAG_DELETE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_DELETE @ X0) @ X1) @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bag.SING_BAG @ X0))))))) (Tbag.NOT_IN_EMPTY_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X0) @ cHOL4.bag.EMPTY_BAG))))) (Tbag.BAG_INN_EMPTY_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X0) @ X1) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))) (Tbag.MEMBER_NOT_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bag.BAG_IN @ X1) @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)))))) (Tbag.SUB_BAG_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.arithmetic.<= @ (X1 @ X2)) @ (X0 @ X2)))))))))) (Tbag.SUB_BAG_EMPTY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bag.SUB_BAG @ cHOL4.bag.EMPTY_BAG) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X0) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)))))) (Tbag.SUB_BAG_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bag.SUB_BAG @ X0) @ X0)))) (Tbag.PSUB_BAG_IRREFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bag.PSUB_BAG @ X0) @ X0))))) (Tbag.SUB_BAG_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ ((cHOL4.bag.SUB_BAG @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tbag.PSUB_BAG_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1)) @ ((cHOL4.bag.PSUB_BAG @ X1) @ X0)))))))) (Tbag.SUB_BAG_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2))) @ ((cHOL4.bag.SUB_BAG @ X0) @ X2))))))))) (Tbag.PSUB_BAG_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1)) @ ((cHOL4.bag.PSUB_BAG @ X1) @ X2))) @ ((cHOL4.bag.PSUB_BAG @ X0) @ X2))))))))) (Tbag.PSUB_BAG_SUB_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1)) @ ((cHOL4.bag.SUB_BAG @ X0) @ X1))))))) (Tbag.PSUB_BAG_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tbag.BAG_DIFF_EMPTY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X0) @ X0)) @ cHOL4.bag.EMPTY_BAG)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X1) @ cHOL4.bag.EMPTY_BAG)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ cHOL4.bag.EMPTY_BAG) @ X2)) @ cHOL4.bag.EMPTY_BAG)))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X3) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X3) @ X4)) @ cHOL4.bag.EMPTY_BAG)))))))))) (Tbag.BAG_DIFF_EMPTY_simple,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X0) @ X0)) @ cHOL4.bag.EMPTY_BAG)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X1) @ cHOL4.bag.EMPTY_BAG)) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ cHOL4.bag.EMPTY_BAG) @ X2)) @ cHOL4.bag.EMPTY_BAG)))))) (Tbag.BAG_DIFF_INSERT_same,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2))))))))) (Tbag.BAG_DIFF_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2)) @ X1)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ ((cHOL4.bag.BAG_DIFF @ X2) @ X1))))))))))) (Tbag.NOT_IN_BAG_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X1) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2)))))))))) (Tbag.BAG_IN_DIFF_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_IN @ X0) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X0) @ X1)))) @ ((cHOL4.bag.BAG_IN @ X0) @ ((cHOL4.bag.BAG_DIFF @ X2) @ X1)))))))))) (Tbag.BAG_IN_DIFF_E,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X0) @ ((cHOL4.bag.BAG_DIFF @ X2) @ X1))) @ ((cHOL4.bag.BAG_IN @ X0) @ X2))))))))) (Tbag.BAG_UNION_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2)) @ X0)) @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X2))))))))))) (Tbag.BAG_DIFF_2L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)) @ X2)) @ ((cHOL4.bag.BAG_DIFF @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2)))))))))) (Tbag.BAG_DIFF_2R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X0) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X0) @ X2)) @ X1)))))))))) (Tbag.SUB_BAG_BAG_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)) @ ((cHOL4.bag.BAG_DIFF @ X3) @ X4))) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ X3) @ ((cHOL4.bag.BAG_UNION @ X4) @ X2))))))))))))))) (Tbag.BAG_DIFF_UNION_eliminate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X2) @ X0))) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2))) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X2) @ X0))) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X2)))))))))))) (Tbag.SUB_BAG_UNION_eliminate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2))) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X2) @ X0))) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2))) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X2) @ X0))) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2)))))))))))) (Tbag.move_BAG_UNION_over_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_DIFF @ X2) @ X1)))))))))) (Tbag.SUB_BAG_UNION,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X2) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X3))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X1) @ X2)) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X1) @ X3))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X2) @ X1)) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X3) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X3) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X3) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X3) @ ((cHOL4.bag.BAG_UNION @ X2) @ X1))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X3)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X3) @ X4))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X4)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X3)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X3) @ X4))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X3) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X3)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ ((cHOL4.bag.BAG_UNION @ X3) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X3)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X5) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X5) @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X5) @ X4))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X3)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X5) @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ ((cHOL4.bag.BAG_UNION @ X5) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X5) @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ ((cHOL4.bag.BAG_UNION @ X5) @ X4))) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X3)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ ((cHOL4.bag.BAG_UNION @ X5) @ ((cHOL4.bag.BAG_UNION @ X3) @ X4)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X4)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X3) @ X5)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X0) @ X3)) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X5)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X3) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X0) @ X3)) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X3) @ X1)) @ X4)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X5)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X0) @ X3)) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X3) @ X1)) @ X5)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_UNION @ X0) @ X3)) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ X4)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X3) @ X5)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ ((cHOL4.bag.BAG_UNION @ X0) @ X3))) @ ((cHOL4.bag.BAG_UNION @ X5) @ X4))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X0)) @ X5)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X3) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ ((cHOL4.bag.BAG_UNION @ X0) @ X3))) @ ((cHOL4.bag.BAG_UNION @ X5) @ X4))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X3)) @ X4)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X5)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ ((cHOL4.bag.BAG_UNION @ X0) @ X3))) @ ((cHOL4.bag.BAG_UNION @ X5) @ X4))))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ X3)) @ X5)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X4)) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X1) @ ((cHOL4.bag.BAG_UNION @ X0) @ X3))) @ ((cHOL4.bag.BAG_UNION @ X5) @ X4)))))))))))))))))))))))))))))))))))))) (Tbag.SUB_BAG_EL_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ (cHOL4.bag.EL_BAG @ X0)) @ X1)) @ ((cHOL4.bag.BAG_IN @ X0) @ X1))))))) (Tbag.SUB_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X2))) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2))))))))) (Tbag.NOT_IN_SUB_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X2) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1))) @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)))))))))) (Tbag.SUB_BAG_BAG_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ X2)) @ ((cHOL4.bag.BAG_IN @ X0) @ X2))))))))) (Tbag.SUB_BAG_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2)))))))))) (Tbag.SUB_BAG_UNION_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X1) @ ((cHOL4.bag.BAG_DIFF @ X2) @ X0))) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X2)))))))))) (Tbag.SUB_BAG_UNION_down,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bag.SUB_BAG @ X0) @ X2)) @ ((cHOL4.bag.SUB_BAG @ X1) @ X2)))))))))) (Tbag.SUB_BAG_DIFF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ X2)) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)) @ ((cHOL4.bag.BAG_DIFF @ X2) @ X3))) @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X3)) @ ((cHOL4.bag.BAG_UNION @ X1) @ X2))))))))))))))) (Tbag.SUB_BAG_PSUB_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tbag.BAG_DELETE_PSUB_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_DELETE @ X0) @ X1) @ X2)) @ ((cHOL4.bag.PSUB_BAG @ X2) @ X0))))))))) (Tbag.SET_OF_EMPTY,((cHOL4.min.= @ (cHOL4.bag.BAG_OF_SET @ cHOL4.pred_set.EMPTY)) @ cHOL4.bag.EMPTY_BAG)) (Tbag.BAG_IN_BAG_OF_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X1) @ (cHOL4.bag.BAG_OF_SET @ X0))) @ ((cHOL4.bool.IN @ X1) @ X0))))))) (Tbag.BAG_OF_EMPTY,((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.pred_set.EMPTY)) (Tbag.SET_BAG_I,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ (cHOL4.bag.BAG_OF_SET @ X0))) @ X0)))) (Tbag.SUB_BAG_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (cHOL4.bag.SET_OF_BAG @ X1)))))))) (Tbag.SET_OF_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (cHOL4.bag.SET_OF_BAG @ X1)))))))) (Tbag.SET_OF_BAG_MERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ ((cHOL4.bag.BAG_MERGE @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (cHOL4.bag.SET_OF_BAG @ X1)))))))) (Tbag.SET_OF_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1))) @ ((cHOL4.pred_set.INSERT @ X0) @ (cHOL4.bag.SET_OF_BAG @ X1)))))))) (Tbag.SET_OF_EL_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ (cHOL4.bag.EL_BAG @ X0))) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))))) (Tbag.SET_OF_BAG_DIFF_SUBSET_down,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.DIFF @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (cHOL4.bag.SET_OF_BAG @ X1))) @ (cHOL4.bag.SET_OF_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)))))))) (Tbag.SET_OF_BAG_DIFF_SUBSET_up,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ (cHOL4.bag.SET_OF_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1))) @ (cHOL4.bag.SET_OF_BAG @ X0))))))) (Tbag.IN_SET_OF_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.bag.SET_OF_BAG @ X1))) @ ((cHOL4.bag.BAG_IN @ X0) @ X1))))))) (Tbag.SET_OF_BAG_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ (cHOL4.bag.SET_OF_BAG @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ X0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)))))) (Tbag.BAG_DISJOINT_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_DISJOINT @ X0) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.bag.BAG_DISJOINT @ cHOL4.bag.EMPTY_BAG) @ X0))))) (Tbag.BAG_DISJOINT_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bag.BAG_DISJOINT @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X0))))))) (Tbag.BAG_DISJOINT_BAG_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DISJOINT @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X2) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X2) @ X1))))))))))) (Tbag.BAG_DISJOINT_BAG_INSERT,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DISJOINT @ ((cHOL4.bag.BAG_INSERT @ X2) @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X2) @ X1))) @ ((cHOL4.bag.BAG_DISJOINT @ X0) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DISJOINT @ X3) @ ((cHOL4.bag.BAG_INSERT @ X5) @ X4))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X5) @ X3))) @ ((cHOL4.bag.BAG_DISJOINT @ X3) @ X4))))))))))) (Tbag.FINITE_EMPTY_BAG,(cHOL4.bag.FINITE_BAG @ cHOL4.bag.EMPTY_BAG)) (Tbag.FINITE_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)))))))) (Tbag.FINITE_BAG_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X1)) @ (X0 @ X1)))))))) (Tbag.STRONG_FINITE_BAG_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ (X0 @ X1))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X1)) @ (X0 @ X1)))))))) (Tbag.FINITE_BAG_THM,((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1))) @ (cHOL4.bag.FINITE_BAG @ X1)))))))) (Tbag.FINITE_BAG_DIFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)))))))) (Tbag.FINITE_BAG_DIFF_dual,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_DIFF @ X1) @ X0))) @ (cHOL4.bag.FINITE_BAG @ X1)))))))) (Tbag.FINITE_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bag.FINITE_BAG @ X1)))))))) (Tbag.FINITE_SUB_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X1) @ X0)) @ (cHOL4.bag.FINITE_BAG @ X1)))))))) (Tbag.BAG_CARD_EMPTY,((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.num.0)) (Tbag.BCARD_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)))))) (Tbag.BAG_CARD_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.bag.BAG_CARD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tbag.BAG_CARD_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bag.FINITE_BAG @ X1))) @ ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.bag.BAG_CARD @ X0)) @ (cHOL4.bag.BAG_CARD @ X1))))))))) (Tbag.BCARD_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ X0)) @ (cHOL4.num.SUC @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_INSERT @ X3) @ X2))) @ ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ X2)) @ X1))))))))))))) (Tbag.BAG_CARD_BAG_INN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.bag.BAG_INN @ X2) @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.bag.BAG_CARD @ X0))))))))))) (Tbag.BAG_FILTER_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_FILTER @ X0) @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.bag.EMPTY_BAG)))) (Tbag.BAG_FILTER_BAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_FILTER @ X2) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1))) @ (((cHOL4.bool.COND @ (X2 @ X0)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ ((cHOL4.bag.BAG_FILTER @ X2) @ X1))) @ ((cHOL4.bag.BAG_FILTER @ X2) @ X1)))))))))) (Tbag.FINITE_BAG_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X1)) @ (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_FILTER @ X0) @ X1)))))))) (Tbag.BAG_INN_BAG_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X1) @ X0) @ ((cHOL4.bag.BAG_FILTER @ X3) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (X3 @ X1)) @ (((cHOL4.bag.BAG_INN @ X1) @ X0) @ X2))))))))))))) (Tbag.BAG_IN_BAG_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ ((cHOL4.bag.BAG_FILTER @ X2) @ X1))) @ ((cHOL4.bool./\ @ (X2 @ X0)) @ ((cHOL4.bag.BAG_IN @ X0) @ X1)))))))))) (Tbag.SET_OF_BAG_EQ_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X1) @ X2)) @ (cHOL4.bag.SET_OF_BAG @ X0))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_UNION @ X4) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.bag.SET_OF_BAG @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X5) @ X4)) @ ((cHOL4.min.= @ X5) @ X1))))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X2))) @ ((cHOL4.bag.BAG_IN @ X1) @ X4))))))))))))))))) (Tbag.FINITE_SET_OF_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ (cHOL4.bag.SET_OF_BAG @ X0))) @ (cHOL4.bag.FINITE_BAG @ X0))))) (Tbag.BAG_IMAGE_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ X0) @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.bag.EMPTY_BAG)))) (Tbag.BAG_IMAGE_FINITE_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ X1) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X0))) @ ((cHOL4.bag.BAG_INSERT @ (X1 @ X2)) @ ((cHOL4.bag.BAG_IMAGE @ X1) @ X0))))))))))) (Tbag.BAG_IMAGE_FINITE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bag.FINITE_BAG @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ X2) @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))) @ ((cHOL4.bag.BAG_UNION @ ((cHOL4.bag.BAG_IMAGE @ X2) @ X0)) @ ((cHOL4.bag.BAG_IMAGE @ X2) @ X1))))))))))) (Tbag.BAG_IMAGE_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X1)) @ (cHOL4.bag.FINITE_BAG @ ((cHOL4.bag.BAG_IMAGE @ X0) @ X1)))))))) (Tbag.BAG_IMAGE_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X2)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ ((cHOL4.combin.o @ X0) @ X1)) @ X2)) @ ((cHOL4.bag.BAG_IMAGE @ X0) @ ((cHOL4.bag.BAG_IMAGE @ X1) @ X2))))))))))) (Tbag.BAG_IMAGE_FINITE_I,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ cHOL4.combin.I) @ X0)) @ X0))))) (Tbag.BAG_IN_FINITE_BAG_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X2)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ ((cHOL4.bag.BAG_IMAGE @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ X3)) @ X0)) @ ((cHOL4.bag.BAG_IN @ X3) @ X2))))))))))))) (Tbag.BAG_INSERT_CHOICE_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_INSERT @ (cHOL4.bag.BAG_CHOICE @ X0)) @ (cHOL4.bag.BAG_REST @ X0))))))) (Tbag.BAG_CHOICE_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_CHOICE @ ((cHOL4.bag.BAG_INSERT @ X0) @ cHOL4.bag.EMPTY_BAG))) @ X0)))) (Tbag.BAG_REST_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_REST @ ((cHOL4.bag.BAG_INSERT @ X0) @ cHOL4.bag.EMPTY_BAG))) @ cHOL4.bag.EMPTY_BAG)))) (Tbag.SUB_BAG_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bag.SUB_BAG @ (cHOL4.bag.BAG_REST @ X0)) @ X0)))) (Tbag.PSUB_BAG_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG))) @ ((cHOL4.bag.PSUB_BAG @ (cHOL4.bag.BAG_REST @ X0)) @ X0))))) (Tbag.SUB_BAG_DIFF_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.bag.BAG_UNION @ X0) @ ((cHOL4.bag.BAG_DIFF @ X1) @ X0))))))))) (Tbag.SUB_BAG_CARD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bag.SUB_BAG @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.bag.BAG_CARD @ X0)) @ (cHOL4.bag.BAG_CARD @ X1)))))))) (Tbag.SUB_BAG_UNION_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bag.SUB_BAG @ X0) @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))))))) (Tbag.PSUB_BAG_CARD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bag.PSUB_BAG @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ (cHOL4.bag.BAG_CARD @ X0)) @ (cHOL4.bag.BAG_CARD @ X1)))))))) (Tbag.ITBAG_IND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.bag.EMPTY_BAG)))) @ ((X1 @ (cHOL4.bag.BAG_REST @ X2)) @ ((X0 @ (cHOL4.bag.BAG_CHOICE @ X2)) @ X3)))) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X1 @ X4) @ X5))))))))))) (Tbag.ITBAG_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bag.ITBAG @ X1) @ X0) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)) @ X2) @ (((cHOL4.bag.ITBAG @ X1) @ (cHOL4.bag.BAG_REST @ X0)) @ ((X1 @ (cHOL4.bag.BAG_CHOICE @ X0)) @ X2)))))))))))) (Tbag.ITBAG_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bag.ITBAG @ X0) @ cHOL4.bag.EMPTY_BAG) @ X1)) @ X1)))))) (Tbag.ITBAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bag.ITBAG @ X2) @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1)) @ X3)) @ (((cHOL4.bag.ITBAG @ X2) @ (cHOL4.bag.BAG_REST @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1))) @ ((X2 @ (cHOL4.bag.BAG_CHOICE @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1))) @ X3))))))))))))) (Tbag.COMMUTING_ITBAG_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((X0 @ X2) @ ((X0 @ X3) @ X4))) @ ((X0 @ X3) @ ((X0 @ X2) @ X4)))))))))) @ (cHOL4.bag.FINITE_BAG @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.bag.ITBAG @ X0) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X1)) @ X5)) @ (((cHOL4.bag.ITBAG @ X0) @ X1) @ ((X0 @ X2) @ X5))))))))))))) (Tbag.COMMUTING_ITBAG_RECURSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((X0 @ X4) @ ((X0 @ X5) @ X6))) @ ((X0 @ X5) @ ((X0 @ X4) @ X6)))))))))) @ (cHOL4.bag.FINITE_BAG @ X2))) @ ((cHOL4.min.= @ (((cHOL4.bag.ITBAG @ X0) @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2)) @ X3)) @ ((X0 @ X1) @ (((cHOL4.bag.ITBAG @ X0) @ X2) @ X3))))))))))))) (Tbag.BAG_GEN_SUM_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_SUM @ cHOL4.bag.EMPTY_BAG) @ X0)) @ X0)))) (Tbag.BAG_GEN_PROD_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ cHOL4.bag.EMPTY_BAG) @ X0)) @ X0)))) (Tbag.BAG_GEN_SUM_TAILREC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_SUM @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)) @ X2)) @ ((cHOL4.bag.BAG_GEN_SUM @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))))))))))) (Tbag.BAG_GEN_SUM_REC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_SUM @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.bag.BAG_GEN_SUM @ X0) @ X2))))))))))) (Tbag.BAG_GEN_PROD_TAILREC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)) @ X2)) @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2))))))))))) (Tbag.BAG_GEN_PROD_REC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)) @ X2)) @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ X2))))))))))) (Tbag.BAG_GEN_PROD_EQ_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tbag.BAG_GEN_PROD_ALL_ONES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X1) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tbag.BAG_GEN_PROD_POSITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X1) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tbag.BAG_EVERY_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bag.BAG_EVERY @ X0) @ cHOL4.bag.EMPTY_BAG)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_EVERY @ X1) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X3))) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.bag.BAG_EVERY @ X1) @ X3))))))))))) (Tbag.BAG_EVERY_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_EVERY @ X2) @ ((cHOL4.bag.BAG_UNION @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_EVERY @ X2) @ X1)) @ ((cHOL4.bag.BAG_EVERY @ X2) @ X0)))))))))) (Tbag.BAG_EVERY_MERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_EVERY @ X2) @ ((cHOL4.bag.BAG_MERGE @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_EVERY @ X2) @ X1)) @ ((cHOL4.bag.BAG_EVERY @ X2) @ X0)))))))))) (Tbag.BAG_EVERY_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_EVERY @ X1) @ X0)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.bag.SET_OF_BAG @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X1 @ X2))))))))))) (Tbag.BAG_FILTER_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_FILTER @ X1) @ X0)) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.bag.BAG_EVERY @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1)) @ X0))))))) (Tbag.SET_OF_BAG_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.SET_OF_BAG @ ((cHOL4.bag.BAG_IMAGE @ X0) @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.bag.SET_OF_BAG @ X1)))))))) (Tbag.BAG_IMAGE_FINITE_RESTRICTED_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bag.BAG_EVERY @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ X2))) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IMAGE @ X0) @ X1)) @ X1))))))) (Tbag.BAG_ALL_DISTINCT_THM,((cHOL4.bool./\ @ (cHOL4.bag.BAG_ALL_DISTINCT @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.BAG_ALL_DISTINCT @ ((cHOL4.bag.BAG_INSERT @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X0) @ X1))) @ (cHOL4.bag.BAG_ALL_DISTINCT @ X1))))))))) (Tbag.BAG_ALL_DISTINCT_BAG_MERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.BAG_ALL_DISTINCT @ ((cHOL4.bag.BAG_MERGE @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ (cHOL4.bag.BAG_ALL_DISTINCT @ X1)))))))) (Tbag.BAG_ALL_DISTINCT_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bag.BAG_ALL_DISTINCT @ ((cHOL4.bag.BAG_UNION @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bag.BAG_ALL_DISTINCT @ X1)) @ ((cHOL4.bag.BAG_DISJOINT @ X0) @ X1))))))))) (Tbag.BAG_ALL_DISTINCT_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ (cHOL4.bag.BAG_ALL_DISTINCT @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1)))))))) (Tbag.BAG_ALL_DISTINCT_DELETE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X1) @ ((cHOL4.bag.BAG_DIFF @ X0) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG))))))))))) (Tbag.BAG_ALL_DISTINCT_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ (cHOL4.bag.BAG_OF_SET @ (cHOL4.bag.SET_OF_BAG @ X0))) @ X0))))) (Tbag.BAG_ALL_DISTINCT_BAG_OF_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bag.BAG_ALL_DISTINCT @ (cHOL4.bag.BAG_OF_SET @ X0))))) (Tbag.BAG_IN_BAG_DIFF_ALL_DISTINCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X2) @ ((cHOL4.bag.BAG_DIFF @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X2) @ X1)))))))))))) (Tbag.SUB_BAG_ALL_DISTINCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X2) @ X0)) @ ((cHOL4.bag.BAG_IN @ X2) @ X1))))))))))) (Tbag.BAG_ALL_DISTINCT_BAG_INN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bag.BAG_INN @ X2) @ X1) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bag.BAG_IN @ X2) @ X0)))))))))))) (Tbag.BAG_ALL_DISTINCT_EXTENSION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.BAG_ALL_DISTINCT @ X0)) @ (cHOL4.bag.BAG_ALL_DISTINCT @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X2) @ X0)) @ ((cHOL4.bag.BAG_IN @ X2) @ X1))))))))))) (Tbag.NOT_BAG_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.~ @ ((cHOL4.bag.BAG_IN @ X1) @ X0)))))))) (Tbag.BAG_UNION_EQ_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.bag.BAG_UNION @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tbag.BAG_IN_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.bag.BAG_IN @ X1) @ X0))) @ ((cHOL4.divides.divides @ X1) @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ X2)))))))))) (Tbag.BAG_GEN_PROD_UNION_LEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ X3))) @ ((cHOL4.arithmetic.* @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ X2)) @ ((cHOL4.bag.BAG_GEN_PROD @ X1) @ X3)))))))))))))) (Tbag.BAG_GEN_PROD_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bag.FINITE_BAG @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ ((cHOL4.bag.BAG_UNION @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.* @ ((cHOL4.bag.BAG_GEN_PROD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bag.BAG_GEN_PROD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tbag.BIG_BAG_UNION_EMPTY,((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ cHOL4.pred_set.EMPTY)) @ cHOL4.bag.EMPTY_BAG)) (Tbag.BIG_BAG_UNION_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ ((cHOL4.pred_set.INSERT @ X1) @ X0))) @ ((cHOL4.bag.BAG_UNION @ X1) @ (cHOL4.bag.BIG_BAG_UNION @ ((cHOL4.pred_set.DELETE @ X0) @ X1)))))))))) (Tbag.BIG_BAG_UNION_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ ((cHOL4.pred_set.DELETE @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bag.BAG_DIFF @ (cHOL4.bag.BIG_BAG_UNION @ X0)) @ X1)) @ (cHOL4.bag.BIG_BAG_UNION @ X0))))))))) (Tbag.BIG_BAG_UNION_ITSET_BAG_UNION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ X0)) @ (((cHOL4.pred_set.ITSET @ cHOL4.bag.BAG_UNION) @ X0) @ cHOL4.bag.EMPTY_BAG)))))) (Tbag.FINITE_BIG_BAG_UNION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.bag.FINITE_BAG @ X1)))))) @ (cHOL4.bag.FINITE_BAG @ (cHOL4.bag.BIG_BAG_UNION @ X0)))))) (Tbag.BAG_IN_BIG_BAG_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ (cHOL4.bag.BIG_BAG_UNION @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_IN @ X0) @ X2)) @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tbag.BIG_BAG_UNION_EQ_EMPTY_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ X0)) @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG))))))))) (Tbag.BIG_BAG_UNION_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X0))) @ ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ ((cHOL4.pred_set.UNION @ X1) @ X0))) @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_UNION @ (cHOL4.bag.BIG_BAG_UNION @ X1)) @ (cHOL4.bag.BIG_BAG_UNION @ X0))) @ (cHOL4.bag.BIG_BAG_UNION @ ((cHOL4.pred_set.INTER @ X1) @ X0)))))))))) (Tbag.BIG_BAG_UNION_EQ_ELEMENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool.IN @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bag.BIG_BAG_UNION @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ X2) @ cHOL4.bag.EMPTY_BAG)))))))))))) (Tbag.BAG_NOT_LESS_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.bag.mlt1 @ X0) @ X1) @ cHOL4.bag.EMPTY_BAG))))))) (Tbag.BAG_LESS_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.bag.mlt1 @ X0) @ X2) @ ((cHOL4.bag.BAG_UNION @ X3) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (((cHOL4.bag.mlt1 @ X0) @ X4) @ X3)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.bag.BAG_UNION @ X4) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X6) @ X5)) @ ((X0 @ X6) @ X1))))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.bag.BAG_UNION @ X3) @ X5)))))))))))))))) (Tbag.mlt1_all_accessible,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.relation.WFP @ (cHOL4.bag.mlt1 @ X0)) @ X1))))))) (Tbag.WF_mlt1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.WF @ (cHOL4.bag.mlt1 @ X0)))))) (Tbag.TC_mlt1_FINITE_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ (cHOL4.bag.mlt1 @ X0)) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ (cHOL4.bag.FINITE_BAG @ X2)))))))))) (Tbag.TC_mlt1_UNION2_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG))))) @ (((cHOL4.relation.TC @ (cHOL4.bag.mlt1 @ X0)) @ X2) @ ((cHOL4.bag.BAG_UNION @ X2) @ X1)))))))))) (Tbag.TC_mlt1_UNION1_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.bag.EMPTY_BAG))))) @ (((cHOL4.relation.TC @ (cHOL4.bag.mlt1 @ X0)) @ X1) @ ((cHOL4.bag.BAG_UNION @ X2) @ X1)))))))))) (Tbag.mlt_TO_EMPTY_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG)))) @ (((cHOL4.relation.TC @ (cHOL4.bag.mlt1 @ X0)) @ cHOL4.bag.EMPTY_BAG) @ X1))))))) (Tbag.BAG_SIZE_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.bag_size @ X0) @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.num.0)))) (Tbag.BAG_SIZE_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X2)) @ ((cHOL4.min.= @ ((cHOL4.bag.bag_size @ X0) @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X1))) @ ((cHOL4.bag.bag_size @ X0) @ X2))))))))))) (TbasicSize.bool_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basicSize.bool_size @ X0)) @ cHOL4.num.0)))) (TbasicSize.pair_size_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.basicSize.pair_size @ X0) @ X1)) @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.arithmetic.+ @ (X0 @ X2)) @ (X1 @ X3))))))))))) (TbasicSize.one_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basicSize.one_size @ X0)) @ cHOL4.num.0)))) (TbasicSize.sum_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.basicSize.sum_size @ X0) @ X1) @ (cHOL4.sum.INL @ X2))) @ (X0 @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.basicSize.sum_size @ X0) @ X1) @ (cHOL4.sum.INR @ X3))) @ (X1 @ X3)))))))))) (TbasicSize.option_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.basicSize.option_size @ X0) @ cHOL4.option.NONE)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.basicSize.option_size @ X0) @ (cHOL4.option.SOME @ X1))) @ (cHOL4.num.SUC @ (X0 @ X1))))))))) (Tbasis_emit.SUMi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.basis_emit.SUMi @ ((cHOL4.pair.|comma| @ (cHOL4.basis_emit.ITSELF @ X1)) @ (cHOL4.basis_emit.ITSELF @ X0)))) @ (cHOL4.basis_emit.ITSELF @ ((cHOL4.arithmetic.+ @ X1) @ X0)))))))) (Tbasis_emit.MULi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.basis_emit.MULi @ ((cHOL4.pair.|comma| @ (cHOL4.basis_emit.ITSELF @ X1)) @ (cHOL4.basis_emit.ITSELF @ X0)))) @ (cHOL4.basis_emit.ITSELF @ ((cHOL4.arithmetic.* @ X1) @ X0)))))))) (Tbasis_emit.EXPi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.basis_emit.EXPi @ ((cHOL4.pair.|comma| @ (cHOL4.basis_emit.ITSELF @ X1)) @ (cHOL4.basis_emit.ITSELF @ X0)))) @ (cHOL4.basis_emit.ITSELF @ ((cHOL4.arithmetic.EXP @ X1) @ X0)))))))) (Tbasis_emit.dimindexi,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ (cHOL4.basis_emit.ITSELF @ X0))) @ X0)))) (Tbasis_emit.IS_EMPTY_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basis_emit.IS_EMPTY @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.bool.T) @ cHOL4.bool.F))))) (Tbasis_emit.FCPi_primitive_def,((cHOL4.min.= @ cHOL4.basis_emit.FCPi) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (cHOL4.combin.I @ (cHOL4.fcp.FCP @ X3)))))))))) (Tbasis_emit.mk_fcp_def,((cHOL4.min.= @ cHOL4.basis_emit.mk_fcp) @ cHOL4.basis_emit.FCPi)) (Tbasis_emit.word_index_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.basis_emit.word_index @ X0) @ X1)) @ ((cHOL4.fcp.fcp_index @ X0) @ X1))))))) (Tbasis_emit.w2w_itself_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.basis_emit.w2w_itself @ cHOL4.bool.the_value) @ X0)) @ (cHOL4.words.w2w @ X0))))) (Tbasis_emit.sw2sw_itself_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.basis_emit.sw2sw_itself @ cHOL4.bool.the_value) @ X0)) @ (cHOL4.words.sw2sw @ X0))))) (Tbasis_emit.word_eq_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.basis_emit.word_eq @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tbasis_emit.word_extract_itself_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.basis_emit.word_extract_itself @ cHOL4.bool.the_value) @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2))))))))) (Tbasis_emit.word_concat_itself_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.basis_emit.word_concat_itself @ cHOL4.bool.the_value) @ X0) @ X1)) @ ((cHOL4.words.word_concat @ X0) @ X1))))))) (Tbasis_emit.fromNum_primitive_def,((cHOL4.min.= @ cHOL4.basis_emit.fromNum) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (cHOL4.combin.I @ (cHOL4.words.n2w_itself @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.MOD @ X3) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ cHOL4.bool.the_value))))))))))) (Tbasis_emit.neg_int_of_num_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basis_emit.neg_int_of_num @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tbasis_emit.i2w_itself_primitive_def,((cHOL4.min.= @ cHOL4.basis_emit.i2w_itself) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (cHOL4.combin.I @ (cHOL4.integer_word.i2w @ X3)))))))))) (Tbasis_emit.IS_EMPTY_REWRITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.basis_emit.IS_EMPTY @ X0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ X0)) @ (cHOL4.basis_emit.IS_EMPTY @ X0)))))) (Tbasis_emit.FCPi_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.bool.the_value))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))) (Tbasis_emit.FCPi_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basis_emit.FCPi @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.bool.the_value))) @ (cHOL4.fcp.FCP @ X0))))) (Tbasis_emit.fromNum_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.bool.the_value))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))) (Tbasis_emit.fromNum_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basis_emit.fromNum @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w_itself @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ cHOL4.bool.the_value)))))) (Tbasis_emit.i2w_itself_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.bool.the_value))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))) (Tbasis_emit.i2w_itself_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.basis_emit.i2w_itself @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.bool.the_value))) @ (cHOL4.integer_word.i2w @ X0))))) (Tbitstring.extend_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bitstring.extend @ X0) @ cHOL4.num.0) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bitstring.extend @ X2) @ (cHOL4.num.SUC @ X3)) @ X1)) @ (((cHOL4.bitstring.extend @ X2) @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))) (Tbitstring.boolify_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bitstring.boolify @ X0) @ cHOL4.list.NIL)) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bitstring.boolify @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.bitstring.boolify @ ((cHOL4.list.CONS @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ X0)) @ X2)))))))))) (Tbitstring.bitify_tupled_primitive_def,((cHOL4.min.= @ cHOL4.bitstring.bitify_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X2)) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ X1)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ X1)))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X2]: (^[X5]: (((cHOL4.list.list_CASE @ X5) @ (cHOL4.combin.I @ X2)) @ (^[X6]: (^[X1]: (((cHOL4.bool.COND @ X6) @ (cHOL4.combin.I @ (X3 @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ X1)))) @ (cHOL4.combin.I @ (X3 @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X2)) @ X1))))))))))))))) (Tbitstring.bitify_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.bitify @ X0) @ X1)) @ (cHOL4.bitstring.bitify_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tbitstring.n2v_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.n2v @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ cHOL4.list.NIL)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.PAD_LEFT @ cHOL4.bool.F) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bitstring.boolify @ cHOL4.list.NIL) @ (cHOL4.numposrep.num_to_bin_list @ (((cHOL4.bit.BITS @ X1) @ cHOL4.num.0) @ X0)))))) @ (cHOL4.bit.LOG2 @ X0))))))) (Tbitstring.v2n_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.v2n @ X0)) @ (cHOL4.numposrep.num_from_bin_list @ ((cHOL4.bitstring.bitify @ cHOL4.list.NIL) @ X0)))))) (Tbitstring.s2v_def,((cHOL4.min.= @ cHOL4.bitstring.s2v) @ (cHOL4.list.MAP @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Tbitstring.v2s_def,((cHOL4.min.= @ cHOL4.bitstring.v2s) @ (cHOL4.list.MAP @ (^[X0]: (((cHOL4.bool.COND @ X0) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (Tbitstring.zero_extend_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.zero_extend @ X0) @ X1)) @ (((cHOL4.list.PAD_LEFT @ cHOL4.bool.F) @ X0) @ X1))))))) (Tbitstring.sign_extend_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.sign_extend @ X0) @ X1)) @ (((cHOL4.list.PAD_LEFT @ (cHOL4.list.HD @ X1)) @ X0) @ X1))))))) (Tbitstring.shiftl_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.shiftl @ X0) @ X1)) @ (((cHOL4.list.PAD_RIGHT @ cHOL4.bool.F) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ X0))))))) (Tbitstring.shiftr_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.shiftr @ X0) @ X1)) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ X0))))))) (Tbitstring.fixwidth_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.bitstring.zero_extend @ X0) @ X1)) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ X2) @ X0)) @ X1)))) @ (cHOL4.list.LENGTH @ X1)))))))) (Tbitstring.field_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bitstring.field @ X0) @ X1) @ X2)) @ ((cHOL4.bitstring.fixwidth @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.bitstring.shiftr @ X2) @ X1)))))))))) (Tbitstring.testbit_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.testbit @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bitstring.field @ X0) @ X0) @ X1)) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ cHOL4.list.NIL)))))))) (Tbitstring.w2v_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.w2v @ X0)) @ ((cHOL4.list.GENLIST @ (^[X1]: ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))) (Tbitstring.v2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.bitstring.testbit @ X1) @ X0))))))) (Tbitstring.rev_count_list_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.rev_count_list @ X0)) @ ((cHOL4.list.GENLIST @ (^[X1]: ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1))) @ X0))))) (Tbitstring.modify_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.modify @ X0) @ X1)) @ ((cHOL4.list.MAP @ (cHOL4.pair.UNCURRY @ X0)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ (cHOL4.bitstring.rev_count_list @ (cHOL4.list.LENGTH @ X1))) @ X1))))))))) (Tbitstring.field_insert_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bitstring.field_insert @ X0) @ X1) @ X2)) @ (cHOL4.bitstring.modify @ (^[X3]: ((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.arithmetic.<= @ X3) @ X0))) @ ((cHOL4.bitstring.testbit @ ((cHOL4.arithmetic.- @ X3) @ X1)) @ X2)))))))))))) (Tbitstring.add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.add @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bitstring.zero_extend @ X2) @ (cHOL4.bitstring.n2v @ ((cHOL4.arithmetic.+ @ (cHOL4.bitstring.v2n @ X0)) @ (cHOL4.bitstring.v2n @ X1)))))) @ ((cHOL4.arithmetic.MAX @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))))))))) (Tbitstring.bitwise_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bitstring.bitwise @ X0) @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.list.MAP @ (cHOL4.pair.UNCURRY @ X0)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.bitstring.fixwidth @ X3) @ X1)) @ ((cHOL4.bitstring.fixwidth @ X3) @ X2)))))) @ ((cHOL4.arithmetic.MAX @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2))))))))))) (Tbitstring.bnot_def,((cHOL4.min.= @ cHOL4.bitstring.bnot) @ (cHOL4.list.MAP @ cHOL4.bool.~))) (Tbitstring.bor_def,((cHOL4.min.= @ cHOL4.bitstring.bor) @ (cHOL4.bitstring.bitwise @ cHOL4.bool.\/))) (Tbitstring.band_def,((cHOL4.min.= @ cHOL4.bitstring.band) @ (cHOL4.bitstring.bitwise @ cHOL4.bool./\))) (Tbitstring.bxor_def,((cHOL4.min.= @ cHOL4.bitstring.bxor) @ (cHOL4.bitstring.bitwise @ (^[X0]: (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))) (Tbitstring.bnor_def,((cHOL4.min.= @ cHOL4.bitstring.bnor) @ (cHOL4.bitstring.bitwise @ (^[X0]: (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (Tbitstring.bxnor_def,((cHOL4.min.= @ cHOL4.bitstring.bxnor) @ (cHOL4.bitstring.bitwise @ cHOL4.min.=))) (Tbitstring.bnand_def,((cHOL4.min.= @ cHOL4.bitstring.bnand) @ (cHOL4.bitstring.bitwise @ (^[X0]: (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ X0) @ X1))))))) (Tbitstring.replicate_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.replicate @ X0) @ X1)) @ (cHOL4.list.FLAT @ ((cHOL4.list.GENLIST @ (cHOL4.combin.K @ X0)) @ X1)))))))) (Tbitstring.extend_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bitstring.extend @ X0) @ cHOL4.num.0) @ X1)) @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bitstring.extend @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ X1)) @ (((cHOL4.bitstring.extend @ X2) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bitstring.extend @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X3))) @ X1)) @ (((cHOL4.bitstring.extend @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))))) (Tbitstring.bitify_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X1)) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tbitstring.bitify_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bitstring.bitify @ X0) @ cHOL4.list.NIL)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bitstring.bitify @ X0) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ X1))) @ ((cHOL4.bitstring.bitify @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X0)) @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bitstring.bitify @ X0) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ X1))) @ ((cHOL4.bitstring.bitify @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ X1))))))))) (Tbitstring.extend_cons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bitstring.extend @ X1) @ (cHOL4.num.SUC @ X0)) @ X2)) @ ((cHOL4.list.CONS @ X1) @ (((cHOL4.bitstring.extend @ X1) @ X0) @ X2)))))))))) (Tbitstring.pad_left_extend,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.PAD_LEFT @ X2) @ X0) @ X1)) @ (((cHOL4.bitstring.extend @ X2) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X1))) @ X1))))))))) (Tbitstring.extend,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.zero_extend @ X0) @ X1)) @ (((cHOL4.bitstring.extend @ cHOL4.bool.F) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X1))) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bitstring.sign_extend @ X0) @ X2)) @ (((cHOL4.bitstring.extend @ (cHOL4.list.HD @ X2)) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X2))) @ X2)))))))) (Tbitstring.fixwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ (((cHOL4.bitstring.extend @ cHOL4.bool.F) @ ((cHOL4.arithmetic.- @ X0) @ X2)) @ X1)) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ X2) @ X0)) @ X1)))) @ (cHOL4.list.LENGTH @ X1)))))))) (Tbitstring.fixwidth_id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ (cHOL4.list.LENGTH @ X0)) @ X0)) @ X0)))) (Tbitstring.fixwidth_id_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ X0) @ X1)) @ X1))))))) (Tbitstring.boolify_reverse_map,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.boolify @ X1) @ X0)) @ ((cHOL4.list.APPEND @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)))) @ X0))) @ X1))))))) (Tbitstring.bitify_reverse_map,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.bitify @ X1) @ X0)) @ ((cHOL4.list.APPEND @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ (^[X2]: (((cHOL4.bool.COND @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ X0))) @ X1))))))) (Tbitstring.every_bit_bitify,(cHOL4.bool.! @ (^[X0]: ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bitstring.bitify @ cHOL4.list.NIL) @ X0))))) (Tbitstring.length_pad_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.list.PAD_LEFT @ X0) @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X2)) @ X1)) @ X1) @ (cHOL4.list.LENGTH @ X2)))))))))) (Tbitstring.length_pad_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.list.PAD_RIGHT @ X0) @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X2)) @ X1)) @ X1) @ (cHOL4.list.LENGTH @ X2)))))))))) (Tbitstring.length_zero_extend,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.bitstring.zero_extend @ X0) @ X1))) @ X0))))))) (Tbitstring.length_sign_extend,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.bitstring.sign_extend @ X0) @ X1))) @ X0))))))) (Tbitstring.length_fixwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.bitstring.fixwidth @ X0) @ X1))) @ X0)))))) (Tbitstring.length_field,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.bitstring.field @ X0) @ X1) @ X2))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1))))))))) (Tbitstring.length_bitify,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.bitstring.bitify @ X1) @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X0)))))))) (Tbitstring.length_bitify_null,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.bitstring.bitify @ cHOL4.list.NIL) @ X0))) @ (cHOL4.list.LENGTH @ X0))))))) (Tbitstring.length_shiftr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.bitstring.shiftr @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X0)) @ X1))))))) (Tbitstring.length_rev_count_list,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.bitstring.rev_count_list @ X0))) @ X0)))) (Tbitstring.length_w2v,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.bitstring.w2v @ X0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) (Tbitstring.el_rev_count_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ (cHOL4.bitstring.rev_count_list @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Tbitstring.el_zero_extend,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ ((cHOL4.bitstring.zero_extend @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X2))) @ X1)) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X2)))) @ X2)))))))))) (Tbitstring.el_sign_extend,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ ((cHOL4.bitstring.sign_extend @ X0) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.list.EL @ cHOL4.num.0) @ X2)) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X2)))) @ X2)))))))))) (Tbitstring.el_fixwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.bitstring.fixwidth @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X2)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X2))) @ X0)) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X2)))) @ X2))) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X2)) @ X1))) @ X2))))))))))) (Tbitstring.el_field,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X1)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X3) @ (((cHOL4.bitstring.field @ X1) @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.list.LENGTH @ X0)))) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.list.LENGTH @ X0))) @ (cHOL4.num.SUC @ X1))) @ X0))))))))))))) (Tbitstring.el_w2v,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ (cHOL4.bitstring.w2v @ X0))) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1))))))))) (Tbitstring.el_shiftr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.- @ X3) @ X2))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.bitstring.shiftr @ ((cHOL4.bitstring.fixwidth @ X3) @ X1)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.list.LENGTH @ X1)))) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.list.LENGTH @ X1))) @ X3)) @ X1))))))))))))) (Tbitstring.shiftr_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bitstring.shiftr @ X0) @ cHOL4.num.0)) @ X0)))) (Tbitstring.field_fixwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bitstring.field @ X0) @ cHOL4.num.0) @ X1)) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tbitstring.testbit,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.testbit @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X2)) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X1)))) @ (cHOL4.list.LENGTH @ X1)))))))) (Tbitstring.testbit_geq_len,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.bitstring.testbit @ X1) @ X0)))))))) (Tbitstring.testbit_el,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ ((cHOL4.bitstring.testbit @ X1) @ X0)) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ X0)))))))) (Tbitstring.bit_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_bit @ X0) @ (cHOL4.bitstring.v2w @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bitstring.testbit @ X0) @ X1)))))))) (Tbitstring.word_index_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.bitstring.v2w @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bitstring.testbit @ X2) @ X1)) @ ((((cHOL4.combin.FAIL @ cHOL4.fcp.fcp_index) @ X0) @ (cHOL4.bitstring.v2w @ X1)) @ X2)))))))))) (Tbitstring.testbit_w2v,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.testbit @ X0) @ (cHOL4.bitstring.w2v @ X1))) @ ((cHOL4.words.word_bit @ X0) @ X1))))))) (Tbitstring.w2v_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.w2v @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))))) (Tbitstring.v2w_w2v,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.w2v @ X0))) @ X0)))) (Tbitstring.v2w_fixwidth,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))) @ (cHOL4.bitstring.v2w @ X0))))) (Tbitstring.fixwidth_fixwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ X0) @ ((cHOL4.bitstring.fixwidth @ X0) @ X1))) @ ((cHOL4.bitstring.fixwidth @ X0) @ X1))))))) (Tbitstring.bitstring_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.bitstring.v2w @ X1))))))) (Tbitstring.ranged_bitstring_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.marker.Abbrev @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))) (Tbitstring.fixwidth_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ X0) @ X1)) @ ((cHOL4.bitstring.fixwidth @ X0) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bitstring.testbit @ X3) @ X1)) @ ((cHOL4.bitstring.testbit @ X3) @ X2))))))))))))) (Tbitstring.v2w_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)))))))) (Tbitstring.field_concat_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.min.= @ (((cHOL4.bitstring.field @ X0) @ cHOL4.num.0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ X2))))))))) (Tbitstring.field_concat_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X3)) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bitstring.field @ X0) @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ (((cHOL4.bitstring.field @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X3))) @ X2)))))))))))) (Tbitstring.field_id_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bitstring.field @ X0) @ cHOL4.num.0) @ X1)) @ X1))))))) (Tbitstring.shiftl_replicate_F,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bitstring.shiftl @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.bitstring.replicate @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ cHOL4.list.NIL)) @ X1)))))))) (Tbitstring.word_lsb_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_lsb @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ (cHOL4.list.LAST @ X0)))))) (Tbitstring.word_msb_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.bitstring.testbit @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Tbitstring.w2w_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2w @ (cHOL4.bitstring.v2w @ X0))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.fixwidth @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ X0)))))) (Tbitstring.sw2sw_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.sw2sw @ (cHOL4.bitstring.v2w @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.sign_extend @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))))))) (Tbitstring.n2w_v2n,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ (cHOL4.bitstring.v2w @ X0))))) (Tbitstring.v2n_n2v,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.v2n @ (cHOL4.bitstring.n2v @ X0))) @ X0)))) (Tbitstring.v2w_n2v,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X0))) @ (cHOL4.words.n2w @ X0))))) (Tbitstring.w2n_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2n @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.bit.MOD_2EXP @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.bitstring.v2n @ X0)))))) (Tbitstring.v2n_lt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ (cHOL4.bitstring.v2n @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X0)))))) (Tbitstring.word_and_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.band @ X0) @ X1)))))))) (Tbitstring.word_or_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.bor @ X0) @ X1)))))))) (Tbitstring.word_xor_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.bxor @ X0) @ X1)))))))) (Tbitstring.word_nand_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nand @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.bnand @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))))))) (Tbitstring.word_nor_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.bnor @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))))))) (Tbitstring.word_xnor_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xnor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.bxnor @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))))))) (Tbitstring.word_1comp_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_1comp @ (cHOL4.bitstring.v2w @ X0))) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.bnot @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))))))) (Tbitstring.word_lsl_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ (cHOL4.bitstring.v2w @ X1)) @ X0)) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.shiftl @ X1) @ X0)))))))) (Tbitstring.word_lsr_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ (cHOL4.bitstring.v2w @ X1)) @ X0)) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.shiftr @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ X0)))))))) (Tbitstring.word_modify_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_modify @ X0) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.modify @ X0) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))))))) (Tbitstring.word_bits_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ (cHOL4.bitstring.v2w @ X2))) @ (cHOL4.bitstring.v2w @ (((cHOL4.bitstring.field @ X0) @ X1) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2))))))))))) (Tbitstring.word_extract_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ (cHOL4.bitstring.v2w @ X2))) @ (cHOL4.words.w2w @ (((cHOL4.words.word_bits @ X0) @ X1) @ (cHOL4.bitstring.v2w @ X2))))))))))) (Tbitstring.word_slice_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_slice @ X0) @ X1) @ (cHOL4.bitstring.v2w @ X2))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.shiftl @ (((cHOL4.bitstring.field @ X0) @ X1) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2))) @ X1)))))))))) (Tbitstring.word_asr_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ (cHOL4.bitstring.v2w @ X1)) @ X0)) @ ((cHOL4.bool.LET @ (^[X2]: (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.sign_extend @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.list.HD @ X2)) @ cHOL4.list.NIL)) @ ((cHOL4.bitstring.shiftr @ X2) @ X0)))))) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)))))))) (Tbitstring.word_ror_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ (cHOL4.bitstring.v2w @ X1)) @ X0)) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: (cHOL4.bitstring.v2w @ ((cHOL4.list.APPEND @ (((cHOL4.bitstring.field @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X2)) @ (((cHOL4.bitstring.field @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3) @ X2)))))) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))) (Tbitstring.word_reverse_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.bitstring.v2w @ X0))) @ (cHOL4.bitstring.v2w @ (cHOL4.list.REVERSE @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))))))) (Tbitstring.word_join_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ ((cHOL4.min.= @ ((cHOL4.words.word_join @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)))))))))) (Tbitstring.word_concat_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ X1))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.fixwidth @ ((cHOL4.arithmetic.MIN @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))))))))) (Tbitstring.word_join_v2w_rwt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_join @ (cHOL4.bitstring.v2w @ X1)) @ (cHOL4.bitstring.v2w @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ (cHOL4.bitstring.v2w @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2)))) @ ((((cHOL4.combin.FAIL @ cHOL4.words.word_join) @ X0) @ (cHOL4.bitstring.v2w @ X1)) @ (cHOL4.bitstring.v2w @ X2))))))))))) (Tbitstring.word_concat_v2w_rwt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.bitstring.v2w @ X1)) @ (cHOL4.bitstring.v2w @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ (cHOL4.bitstring.v2w @ ((cHOL4.bitstring.fixwidth @ ((cHOL4.arithmetic.MIN @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2))))) @ ((((cHOL4.combin.FAIL @ cHOL4.words.word_concat) @ X0) @ (cHOL4.bitstring.v2w @ X1)) @ (cHOL4.bitstring.v2w @ X2))))))))))) (Tbitstring.word_reduce_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_reduce @ X0) @ (cHOL4.bitstring.v2w @ X1))) @ ((cHOL4.bool.LET @ (^[X2]: (cHOL4.bitstring.v2w @ ((cHOL4.list.CONS @ (((cHOL4.list.FOLDL @ X0) @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2))) @ cHOL4.list.NIL)))) @ ((cHOL4.bitstring.fixwidth @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)))))))) (Tbitstring.reduce_and_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_and @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_reduce @ cHOL4.bool./\) @ (cHOL4.bitstring.v2w @ X0)))))) (Tbitstring.reduce_or_v2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_or @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_reduce @ cHOL4.bool.\/) @ (cHOL4.bitstring.v2w @ X0)))))) (Tbitstring.extract_v2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X2)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1))) @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ (cHOL4.bitstring.v2w @ X2))) @ (cHOL4.bitstring.v2w @ (((cHOL4.bitstring.field @ X0) @ X1) @ X2))))))))))) (Tbitstring.word_bit_last_shiftr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.words.word_bit @ X0) @ (cHOL4.bitstring.v2w @ X1))) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X2))) @ (cHOL4.list.LAST @ X2)))) @ ((cHOL4.bitstring.shiftr @ X1) @ X0))))))))) (Tbitstring.ops_to_v2w,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_or @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_or @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_and @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_and @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_xor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_xor @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_nor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nor @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_nor @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nand @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_nand @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nand @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_nand @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xnor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_xnor @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xnor @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_xnor @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_concat @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_concat @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_join @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.words.word_join @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_join @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_join @ (cHOL4.bitstring.v2w @ (cHOL4.bitstring.n2v @ X1))) @ (cHOL4.bitstring.v2w @ X0))))))))))))))))))))))) (Tbitstring.ops_to_n2w,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.bitstring.v2w @ X0))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_log2 @ (cHOL4.bitstring.v2w @ X0))) @ (cHOL4.words.word_log2 @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bitstring.v2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ (cHOL4.words.n2w @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X1)) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X1)) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.bitstring.v2w @ X0)) @ X2)) @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X3) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_add @ X3) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ (cHOL4.bitstring.v2w @ X0)) @ X4)) @ ((cHOL4.words.word_sub @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X4))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X5) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_sub @ X5) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.bitstring.v2w @ X0)) @ X6)) @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X6))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X7) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_mul @ X7) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ ((cHOL4.words.word_sdiv @ (cHOL4.bitstring.v2w @ X0)) @ X8)) @ ((cHOL4.words.word_sdiv @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X8))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.words.word_sdiv @ X9) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_sdiv @ X9) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ ((cHOL4.words.word_div @ (cHOL4.bitstring.v2w @ X0)) @ X10)) @ ((cHOL4.words.word_div @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X10))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.= @ ((cHOL4.words.word_div @ X11) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_div @ X11) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.= @ ((cHOL4.words.word_mod @ (cHOL4.bitstring.v2w @ X0)) @ X12)) @ ((cHOL4.words.word_mod @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X12))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.words.word_mod @ X13) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_mod @ X13) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_lt @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_lt @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_gt @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_gt @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_le @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_ge @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_ge @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_lo @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_lo @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_hi @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_hi @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_hi @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_hi @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_ls @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_ls @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ (cHOL4.bitstring.v2w @ X0)) @ X14)) @ ((cHOL4.words.word_hs @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0))) @ X14))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ X14) @ (cHOL4.bitstring.v2w @ X0))) @ ((cHOL4.words.word_hs @ X14) @ (cHOL4.words.n2w @ (cHOL4.bitstring.v2n @ X0)))))))))))))))))))))))))))))))))))))))) (Tbit.MOD_2EXP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))) (Tbit.DIV_2EXP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.DIV_2EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.DIV @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))) (Tbit.TIMES_2EXP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.TIMES_2EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))) (Tbit.DIVMOD_2EXP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.DIVMOD_2EXP @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.DIV @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))) (Tbit.SBIT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.SBIT @ X0) @ X1)) @ (((cHOL4.bool.COND @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ cHOL4.num.0))))))) (Tbit.BITS_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.bit.MOD_2EXP @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.bit.DIV_2EXP @ X1) @ X2)))))))))) (Tbit.BITV_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BITV @ X0) @ X1)) @ (((cHOL4.bit.BITS @ X1) @ X1) @ X0))))))) (Tbit.BIT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tbit.SLICE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.- @ ((cHOL4.bit.MOD_2EXP @ (cHOL4.num.SUC @ X0)) @ X2)) @ ((cHOL4.bit.MOD_2EXP @ X1) @ X2)))))))))) (Tbit.LOG2_def,((cHOL4.min.= @ cHOL4.bit.LOG2) @ (cHOL4.logroot.LOG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Tbit.LOWEST_SET_BIT_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bit.LOWEST_SET_BIT @ X0)) @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.bit.BIT @ X1) @ X0))))))) (Tbit.BIT_REVERSE_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.BIT_REVERSE @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.BIT_REVERSE @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ ((cHOL4.bit.BIT_REVERSE @ X1) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bit.SBIT @ ((cHOL4.bit.BIT @ X1) @ X0)) @ cHOL4.num.0))))))))) (Tbit.BITWISE_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ cHOL4.num.0) @ X0) @ X1) @ X2)) @ cHOL4.num.0)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ X3)) @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.+ @ ((((cHOL4.bit.BITWISE @ X3) @ X0) @ X1) @ X2)) @ ((cHOL4.bit.SBIT @ ((X0 @ ((cHOL4.bit.BIT @ X3) @ X1)) @ ((cHOL4.bit.BIT @ X3) @ X2))) @ X3))))))))))))) (Tbit.BIT_MODIFY_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.BIT_MODIFY @ cHOL4.num.0) @ X0) @ X1)) @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.BIT_MODIFY @ (cHOL4.num.SUC @ X2)) @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BIT_MODIFY @ X2) @ X0) @ X1)) @ ((cHOL4.bit.SBIT @ ((X0 @ X2) @ ((cHOL4.bit.BIT @ X2) @ X1))) @ X2))))))))))) (Tbit.SIGN_EXTEND_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.SIGN_EXTEND @ X0) @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ X3)) @ X3))) @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))))) (Tbit.MOD_2EXP_EQ_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.MOD_2EXP_EQ @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP @ X0) @ X1)) @ ((cHOL4.bit.MOD_2EXP @ X0) @ X2)))))))))) (Tbit.MOD_2EXP_MAX_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP_MAX @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tbit.LESS_MULT_MONO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X2)) @ ((cHOL4.prim_rec.< @ X1) @ X3))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ X3)))))))))))) (Tbit.LOG2_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ X0)) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X1))))) @ ((cHOL4.min.= @ (cHOL4.bit.LOG2 @ X0)) @ X1))))))) (Tbit.LOG2_TWOEXP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ X0)))) (Tbit.DIVMOD_2EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.DIVMOD_2EXP @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.bit.DIV_2EXP @ X0) @ X1)) @ ((cHOL4.bit.MOD_2EXP @ X0) @ X1)))))))) (Tbit.SUC_SUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tbit.DIV_MULT_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tbit.NOT_ZERO_ADD1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tbit.ZERO_LT_TWOEXP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tbit.ONE_LE_TWOEXP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tbit.TWOEXP_NOT_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ cHOL4.num.0))))) (Tbit.MOD_2EXP_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))) (Tbit.TWOEXP_DIVISION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.DIV @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))) (Tbit.TWOEXP_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))) (Tbit.TWOEXP_MONO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))) (Tbit.EXP_SUB_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))) (Tbit.MOD_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ X0))))))) (Tbit.BITS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.DIV @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1))))))))))) (Tbit.BITSLT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.prim_rec.< @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)))))))))) (Tbit.BITSLT_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.prim_rec.< @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0)))))))))) (Tbit.BITS_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))))) (Tbit.BITS_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.arithmetic.<= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ X2)))))))) (Tbit.BITS_COMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X2) @ X3) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X4))) @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ ((cHOL4.arithmetic.+ @ X3) @ X1)) @ X4)))))))))))))) (Tbit.BITS_DIV_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X3))) @ (((cHOL4.bit.BITS @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X3)) @ X2))))))))))) (Tbit.BITS_LT_HIGH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.DIV @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))))))))) (Tbit.BITS_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ cHOL4.num.0))))))))) (Tbit.BITS_ZERO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ cHOL4.num.0)) @ cHOL4.num.0)))))) (Tbit.BITS_ZERO3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0))))))))) (Tbit.BITS_ZERO4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))) @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ cHOL4.num.0) @ X2)))))))))) (Tbit.BITS_ZEROL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ X1))))))) (Tbit.BITS_LOG2_ZERO_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ (cHOL4.bit.LOG2 @ X0)) @ cHOL4.num.0) @ X0)) @ X0))))) (Tbit.BITS_LT_LOW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ cHOL4.num.0))))))))) (Tbit.BIT_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ cHOL4.num.0))))) (Tbit.BIT_B,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tbit.BIT_B_NEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))))))) (Tbit.BITS_COMP_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X2) @ X3) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X4))) @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X1))) @ ((cHOL4.arithmetic.+ @ X3) @ X1)) @ X4))))))))))))) (Tbit.NOT_MOD2_LEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tbit.NOT_MOD2_LEM2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.num.0))))) (Tbit.ODD_MOD2_LEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tbit.DIV_MULT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.DIV @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))) (Tbit.DIV_MULT_THM2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Tbit.LESS_EQ_EXP_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))))) (Tbit.SLICE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X1) @ X2) @ X0)) @ ((cHOL4.arithmetic.* @ (((cHOL4.bit.BITS @ X1) @ X2) @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)))))))))) (Tbit.SLICELT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.prim_rec.< @ (((cHOL4.bit.SLICE @ X0) @ X1) @ X2)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0)))))))))) (Tbit.BITS_SLICE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ (((cHOL4.bit.SLICE @ X0) @ X1) @ X2))) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2))))))))) (Tbit.BITS_SLICE_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X1) @ X2) @ (((cHOL4.bit.SLICE @ X0) @ X2) @ X3))) @ (((cHOL4.bit.BITS @ X0) @ X2) @ X3)))))))))))) (Tbit.SLICE_ZERO_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X1) @ cHOL4.num.0) @ X0)) @ (((cHOL4.bit.BITS @ X1) @ cHOL4.num.0) @ X0))))))) (Tbit.MOD_2EXP_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MOD @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2))) @ ((cHOL4.arithmetic.MOD @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X1)))))))))))) (Tbit.SLICE_COMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.<= @ X2) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.SLICE @ X0) @ (cHOL4.num.SUC @ X1)) @ X3)) @ (((cHOL4.bit.SLICE @ X1) @ X2) @ X3))) @ (((cHOL4.bit.SLICE @ X0) @ X2) @ X3)))))))))))) (Tbit.SLICE_COMP_RWT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.prim_rec.< @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.SLICE @ X0) @ X1) @ X4)) @ (((cHOL4.bit.SLICE @ X2) @ X3) @ X4))) @ (((cHOL4.bit.SLICE @ X0) @ X3) @ X4)))))))))))))) (Tbit.SLICE_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X0) @ X1) @ X2)) @ cHOL4.num.0))))))))) (Tbit.SLICE_ZERO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X1) @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))))) (Tbit.BITS_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ X3))) @ (((cHOL4.bit.BITS @ X0) @ X1) @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))))))))) (Tbit.BITS_SUM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0)))) @ X3))) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X3))))))))))) (Tbit.SLICE_COMP_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X2)) @ ((cHOL4.arithmetic.<= @ X3) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X0) @ X1) @ (((cHOL4.bit.SLICE @ X2) @ X3) @ X4))) @ (((cHOL4.bit.SLICE @ X0) @ X1) @ X4)))))))))))))) (Tbit.BITS_SUM3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X2)))) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tbit.BITS_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ ((cHOL4.arithmetic.* @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X2)))) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tbit.BIT_COMP_THM3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.<= @ X2) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (((cHOL4.bit.BITS @ X0) @ (cHOL4.num.SUC @ X1)) @ X3)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X1)) @ X2)))) @ (((cHOL4.bit.BITS @ X1) @ X2) @ X3))) @ (((cHOL4.bit.BITS @ X0) @ X2) @ X3)))))))))))) (Tbit.NOT_BIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X0) @ X1)) @ cHOL4.num.0))))))) (Tbit.NOT_BITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X0) @ X1)) @ cHOL4.num.0))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tbit.NOT_BITS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X0) @ X1)) @ cHOL4.num.0))))))) (Tbit.BIT_SLICE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ X1)) @ ((cHOL4.bit.BIT @ X0) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X0) @ X0) @ X1)) @ (((cHOL4.bit.SLICE @ X0) @ X0) @ X2)))))))))) (Tbit.BIT_SLICE_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bit.SBIT @ ((cHOL4.bit.BIT @ X1) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ ((cHOL4.arithmetic.* @ (((cHOL4.bit.SLICE @ X1) @ X1) @ X2)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))))) (Tbit.BIT_SLICE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.SBIT @ ((cHOL4.bit.BIT @ X0) @ X1)) @ X0)) @ (((cHOL4.bit.SLICE @ X0) @ X0) @ X1))))))) (Tbit.BIT_SLICE_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X0) @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))) (Tbit.BIT_SLICE_THM3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.bit.SLICE @ X0) @ X0) @ X1)) @ cHOL4.num.0))))))) (Tbit.BIT_SLICE_THM4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ (((cHOL4.bit.SLICE @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.bit.BIT @ X0) @ X3))))))))))))) (Tbit.SBIT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bit.SBIT @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.bit.SBIT @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2))))))))))) (Tbit.BITS_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.bit.SBIT @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X2)) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1))) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2))) @ (((cHOL4.bit.BITS @ (cHOL4.num.SUC @ X0)) @ X1) @ X2)))))))))) (Tbit.BITS_SUC_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ (cHOL4.num.SUC @ X0)) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ X1)) @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.bit.SBIT @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X2)) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1))) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2))))))))))) (Tbit.BIT_BITS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X4)) @ ((cHOL4.arithmetic.<= @ X4) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X4) @ X2)) @ ((cHOL4.bit.BIT @ X4) @ X3)))))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2)) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X3)))))))))))) (Tbit.BITS_ZERO5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X2) @ X1)))))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ cHOL4.num.0))))))) (Tbit.BIT0_ODD,((cHOL4.min.= @ (cHOL4.bit.BIT @ cHOL4.num.0)) @ cHOL4.arithmetic.ODD)) (Tbit.BITV_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BITV @ X1) @ X0)) @ ((cHOL4.bit.SBIT @ ((cHOL4.bit.BIT @ X0) @ X1)) @ cHOL4.num.0))))))) (Tbit.ADD_BIT0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ cHOL4.num.0) @ X0)) @ ((cHOL4.bit.BIT @ cHOL4.num.0) @ X1))))))))) (Tbit.ADD_BITS_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BITS @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X0)) @ X1)) @ (((cHOL4.bit.BITS @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X0)) @ X2))) @ (((cHOL4.bit.BITS @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X2))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tbit.ADD_BIT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X2)))))))))))) (Tbit.BITWISE_LT_2EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.prim_rec.< @ ((((cHOL4.bit.BITWISE @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))))) (Tbit.BITWISE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ ((((cHOL4.bit.BITWISE @ X1) @ X2) @ X3) @ X4))) @ ((X2 @ ((cHOL4.bit.BIT @ X0) @ X3)) @ ((cHOL4.bit.BIT @ X0) @ X4))))))))))))))) (Tbit.BITWISE_COR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.==> @ ((X2 @ ((cHOL4.bit.BIT @ X0) @ X3)) @ ((cHOL4.bit.BIT @ X0) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.DIV @ ((((cHOL4.bit.BITWISE @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tbit.BITWISE_NOT_COR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((X2 @ ((cHOL4.bit.BIT @ X0) @ X3)) @ ((cHOL4.bit.BIT @ X0) @ X4)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.DIV @ ((((cHOL4.bit.BITWISE @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.num.0)))))))))))))) (Tbit.BITWISE_BITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ X0)) @ X1) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X2)) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X3))) @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ X0)) @ X1) @ X2) @ X3))))))))))) (Tbit.NOT_BIT_GT_TWOEXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ X1)))))))) (Tbit.BIT_IMP_GE_TWOEXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bit.BIT @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X1))))))) (Tbit.BITWISE_ONE_COMP_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ X0)) @ (^[X3]: (^[X4]: (cHOL4.bool.~ @ X3)))) @ X1) @ X2)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (((cHOL4.bit.BITS @ X0) @ cHOL4.num.0) @ X1)))))))))) (Tbit.BIT_COMPLEMENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X1) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X1) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tbit.BIT_OF_BITS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ (((cHOL4.bit.BITS @ X1) @ X2) @ X3))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ X3)))))))))))) (Tbit.BIT_SHIFT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)))) @ ((cHOL4.bit.BIT @ X0) @ X1))))))))) (Tbit.BIT_SHIFT_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ X0) @ X2)) @ X1)))))))))) (Tbit.BIT_SHIFT_THM3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)))))))))))) (Tbit.BIT_OF_BITS_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X2) @ (((cHOL4.bit.BITS @ X0) @ X1) @ X3))))))))))))) (Tbit.BIT_DIV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bit.BIT @ (cHOL4.num.SUC @ X0)) @ X1))))))) (Tbit.BIT_SHIFT_THM4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X2))))))))) (Tbit.DIV_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.DIV @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))))) (Tbit.MOD_ZERO_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ cHOL4.num.0))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X1))))))) (Tbit.DIV_GT0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.DIV @ X0) @ X1)))))))) (Tbit.DIV_SUB1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.DIV @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))))))) (Tbit.BIT_EXP_SUB1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tbit.BIT_SHIFT_THM5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X2) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.DIV @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ cHOL4.num.0)) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.arithmetic.MOD @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))))))))))))) (Tbit.SBIT_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ ((cHOL4.bit.SBIT @ X0) @ X2)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.bit.SBIT @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X1)))))))))) (Tbit.BITWISE_EVAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ X0)) @ X1) @ X2) @ X3)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((((cHOL4.bit.BITWISE @ X0) @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.DIV @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bit.SBIT @ ((X1 @ (cHOL4.arithmetic.ODD @ X2)) @ (cHOL4.arithmetic.ODD @ X3))) @ cHOL4.num.0)))))))))))) (Tbit.MOD_PLUS_RIGHT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.MOD @ X2) @ X0))) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X0)))))))))) (Tbit.MOD_PLUS_LEFT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X2) @ X0)) @ X1)) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0)))))))))) (Tbit.MOD_PLUS_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))))) (Tbit.MOD_ADD_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tbit.BIT_REVERSE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.bit.BIT_REVERSE @ X1) @ X2))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X2)))))))))) (Tbit.LOG2_LE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.bit.LOG2 @ X0)) @ (cHOL4.bit.LOG2 @ X1))))))))) (Tbit.TWOEXP_LE_IMP_LE_LOG2,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.bit.LOG2 @ X1)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.bit.LOG2 @ X0)) @ X1))))))))) (Tbit.NOT_BIT_GT_LOG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.bit.LOG2 @ X1)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ X1)))))))) (Tbit.NOT_BIT_GT_BITWISE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X0) @ ((((cHOL4.bit.BITWISE @ X1) @ X2) @ X3) @ X4))))))))))))))) (Tbit.LT_TWOEXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ (cHOL4.bit.LOG2 @ X0)) @ X1)))))))) (Tbit.BIT_MODIFY_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ (((cHOL4.bit.BIT_MODIFY @ X1) @ X2) @ X3))) @ ((X2 @ X0) @ ((cHOL4.bit.BIT @ X0) @ X3))))))))))))) (Tbit.BIT_SIGN_EXTEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X3) @ (((cHOL4.bit.SIGN_EXTEND @ X0) @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X3) @ X0))) @ ((cHOL4.bit.BIT @ X3) @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X1)) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))))))))))))) (Tbit.BIT_LOG2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.bit.BIT @ (cHOL4.bit.LOG2 @ X0)) @ X0))))) (Tbit.EXISTS_BIT_IN_RANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X2)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X1)) @ ((cHOL4.bit.BIT @ X3) @ X2))))))))))))) (Tbit.EXISTS_BIT_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.bit.BIT @ X2) @ X1)))))))))) (Tbit.LEAST_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ (cHOL4.bool.~ @ (X1 @ X2)))))) @ (X1 @ X0))) @ ((cHOL4.min.= @ (cHOL4.while.LEAST @ X1)) @ X0))))))) (Tblast.bcarry_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.blast.bcarry @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X0) @ X1)) @ X2)))))))))) (Tblast.BCARRY_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ cHOL4.num.0) @ X0) @ X1) @ X2)) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ (cHOL4.num.SUC @ X3)) @ X0) @ X1) @ X2)) @ (((cHOL4.blast.bcarry @ (X0 @ X3)) @ (X1 @ X3)) @ ((((cHOL4.blast.BCARRY @ X3) @ X0) @ X1) @ X2))))))))))))) (Tblast.bsum_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.blast.bsum @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.bool.~ @ X1))) @ (cHOL4.bool.~ @ X2)))))))))) (Tblast.BSUM_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.blast.BSUM @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.blast.bsum @ (X1 @ X0)) @ (X2 @ X0)) @ ((((cHOL4.blast.BCARRY @ X0) @ X1) @ X2) @ X3)))))))))))) (Tblast.BCARRY_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ cHOL4.num.0) @ X0) @ X1) @ X2)) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ X0) @ X1) @ X2)) @ (((cHOL4.blast.bcarry @ (X0 @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X1 @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((((cHOL4.blast.BCARRY @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0) @ X1) @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X3))) @ X0) @ X1) @ X2)) @ (((cHOL4.blast.bcarry @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3)))) @ (X1 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3)))) @ ((((cHOL4.blast.BCARRY @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ X0) @ X1) @ X2)))))))))))))) (Tblast.BCARRY_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ X0) @ (^[X0]: ((cHOL4.bit.BIT @ X0) @ X1))) @ (^[X0]: ((cHOL4.bit.BIT @ X0) @ X2))) @ X3)) @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X1)) @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X2))) @ (((cHOL4.bool.COND @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0)))))))))))))) (Tblast.BCARRY_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X6) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ X6)) @ (X3 @ X6))) @ ((cHOL4.min.= @ (X4 @ X6)) @ (X5 @ X6))))))) @ ((cHOL4.min.= @ ((((cHOL4.blast.BCARRY @ X0) @ X2) @ X4) @ X1)) @ ((((cHOL4.blast.BCARRY @ X0) @ X3) @ X5) @ X1)))))))))))))))) (Tblast.BSUM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X6) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ X6)) @ (X3 @ X6))) @ ((cHOL4.min.= @ (X4 @ X6)) @ (X5 @ X6))))))) @ ((cHOL4.min.= @ ((((cHOL4.blast.BSUM @ X0) @ X2) @ X4) @ X1)) @ ((((cHOL4.blast.BSUM @ X0) @ X3) @ X5) @ X1)))))))))))))))) (Tblast.BSUM_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.blast.BSUM @ X0) @ (^[X0]: ((cHOL4.bit.BIT @ X0) @ X1))) @ (^[X0]: ((cHOL4.bit.BIT @ X0) @ X2))) @ X3)) @ ((cHOL4.bit.BIT @ X0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ (((cHOL4.bool.COND @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))))))))))))) (Tblast.BITWISE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((((cHOL4.blast.BSUM @ X2) @ (cHOL4.fcp.fcp_index @ X0)) @ (cHOL4.fcp.fcp_index @ X1)) @ cHOL4.bool.F))))))))) (Tblast.BITWISE_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((((cHOL4.blast.BSUM @ X2) @ (cHOL4.fcp.fcp_index @ X0)) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ (cHOL4.fcp.fcp_index @ X1))) @ cHOL4.bool.T))))))))) (Tblast.BITWISE_LO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X0) @ X1)) @ (cHOL4.bool.~ @ ((((cHOL4.blast.BCARRY @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.fcp_index @ X0)) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ (cHOL4.fcp.fcp_index @ X1))) @ cHOL4.bool.T)))))))) (Tblast.BITWISE_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.words.word_add @ X2) @ (cHOL4.fcp.FCP @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.fcp.fcp_index @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X4)) @ ((cHOL4.fcp.fcp_index @ X1) @ ((cHOL4.arithmetic.- @ X4) @ X3)))))))))) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))) (Tblast.word_lsl_bv_expand,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl_bv @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X1) @ cHOL4.num.0))) @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))))) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.num.0) @ X1)) @ (cHOL4.words.n2w @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X2)) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ X2) @ X4)))))))) @ cHOL4.bool.F) @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))))) (Tblast.word_lsr_bv_expand,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr_bv @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X1) @ cHOL4.num.0))) @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))))) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.num.0) @ X1)) @ (cHOL4.words.n2w @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X2) @ X4)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X4)))))))) @ cHOL4.bool.F) @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))))) (Tblast.word_asr_bv_expand,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr_bv @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)))) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.num.0) @ X1)) @ (cHOL4.words.n2w @ X4))) @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_asr @ X0) @ X4)) @ X2)))))) @ cHOL4.bool.F) @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tblast.word_ror_bv_expand,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror_bv @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mod @ X1) @ (cHOL4.words.n2w @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ (cHOL4.words.n2w @ X4))) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X4) @ X2)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))) @ cHOL4.bool.F) @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))))) (Tblast.word_rol_bv_expand,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_rol_bv @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mod @ X1) @ (cHOL4.words.n2w @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ (cHOL4.words.n2w @ X4))) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X4)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))) @ cHOL4.bool.F) @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))))) (Tbool.BOOL_CASES_AX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F))))) (Tbool.ETA_AX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (^[X1]: (X0 @ X1))) @ X0)))) (Tbool.SELECT_AX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.min.|at| @ X0)))))))) (Tbool.INFINITY_AX,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.ONE_ONE @ X0)) @ (cHOL4.bool.~ @ (cHOL4.bool.ONTO @ X0)))))) (Tbool.T_DEF,((cHOL4.min.= @ cHOL4.bool.T) @ ((cHOL4.min.= @ (^[X0]: X0)) @ (^[X0]: X0)))) (Tbool.FORALL_DEF,((cHOL4.min.= @ cHOL4.bool.!) @ (^[X0]: ((cHOL4.min.= @ X0) @ (^[X1]: cHOL4.bool.T))))) (Tbool.EXISTS_DEF,((cHOL4.min.= @ cHOL4.bool.?) @ (^[X0]: (X0 @ (cHOL4.min.|at| @ X0))))) (Tbool.AND_DEF,((cHOL4.min.= @ cHOL4.bool./\) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X1) @ X2))) @ X2))))))) (Tbool.OR_DEF,((cHOL4.min.= @ cHOL4.bool.\/) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X2)) @ X2)))))))) (Tbool.F_DEF,((cHOL4.min.= @ cHOL4.bool.F) @ (cHOL4.bool.! @ (^[X0]: X0)))) (Tbool.NOT_DEF,((cHOL4.min.= @ cHOL4.bool.~) @ (^[X0]: ((cHOL4.min.==> @ X0) @ cHOL4.bool.F)))) (Tbool.EXISTS_UNIQUE_DEF,((cHOL4.min.= @ cHOL4.bool.?!) @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.? @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tbool.LET_DEF,((cHOL4.min.= @ cHOL4.bool.LET) @ (^[X0]: (^[X1]: (X0 @ X1))))) (Tbool.COND_DEF,((cHOL4.min.= @ cHOL4.bool.COND) @ (^[X0]: (^[X1]: (^[X2]: (cHOL4.min.|at| @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ X3) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ X3) @ X2)))))))))) (Tbool.ONE_ONE_DEF,((cHOL4.min.= @ cHOL4.bool.ONE_ONE) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tbool.ONTO_DEF,((cHOL4.min.= @ cHOL4.bool.ONTO) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ (X0 @ X2))))))))) (Tbool.TYPE_DEFINITION,((cHOL4.min.= @ cHOL4.bool.TYPE_DEFINITION) @ (^[X0]: (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X0 @ X4)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X4) @ (X1 @ X2)))))))))))) (Tbool.literal_case_DEF,((cHOL4.min.= @ cHOL4.bool.literal_case) @ (^[X0]: (^[X1]: (X0 @ X1))))) (Tbool.IN_DEF,((cHOL4.min.= @ cHOL4.bool.IN) @ (^[X0]: (^[X1]: (X1 @ X0))))) (Tbool.RES_FORALL_DEF,((cHOL4.min.= @ cHOL4.bool.RES_FORALL) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))) (Tbool.RES_EXISTS_DEF,((cHOL4.min.= @ cHOL4.bool.RES_EXISTS) @ (^[X0]: (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))) (Tbool.RES_EXISTS_UNIQUE_DEF,((cHOL4.min.= @ cHOL4.bool.RES_EXISTS_UNIQUE) @ (^[X0]: (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X2]: ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X1 @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tbool.RES_SELECT_DEF,((cHOL4.min.= @ cHOL4.bool.RES_SELECT) @ (^[X0]: (^[X1]: (cHOL4.min.|at| @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))) (Tbool.BOUNDED_DEF,((cHOL4.min.= @ cHOL4.bool.BOUNDED) @ (^[X0]: cHOL4.bool.T))) (Tbool.DATATYPE_TAG_DEF,((cHOL4.min.= @ cHOL4.bool.DATATYPE) @ (^[X0]: cHOL4.bool.T))) (Tbool.RES_ABSTRACT_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bool.RES_ABSTRACT @ X0) @ X1) @ X2)) @ (X1 @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.min.= @ (X3 @ X2)) @ (X4 @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X3)) @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X4))))))))))) (Tbool.itself_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (cHOL4.min.= @ cHOL4.bool.ARB)) @ X0)))) (Tbool.itself_case_thm,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.itself_case @ cHOL4.bool.the_value) @ X0)) @ X0)))) (Tbool.TRUTH,cHOL4.bool.T) (Tbool.IMP_ANTISYM_AX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X0)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tbool.FALSITY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ cHOL4.bool.F) @ X0)))) (Tbool.ETA_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (^[X1]: (X0 @ X1))) @ X0)))) (Tbool.EXCLUDED_MIDDLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X0))))) (Tbool.BETA_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: (X0 @ X2)) @ X1)) @ (X0 @ X1))))))) (Tbool.LET_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.LET @ X0) @ X1)) @ (X0 @ X1))))))) (Tbool.FORALL_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ X0)) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tbool.EXISTS_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ X0)) @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1))))))) (Tbool.ABS_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: X0) @ X1)) @ X0)))))) (Tbool.FORALL_SIMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: X0))) @ X0)))) (Tbool.EXISTS_SIMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: X0))) @ X0)))) (Tbool.AND_INTRO_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.bool./\ @ X0) @ X1)))))))) (Tbool.AND1_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ X0)))))) (Tbool.AND2_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ X1)))))) (Tbool.CONJ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ X1) @ X0))))))) (Tbool.CONJ_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ X1) @ X0))))))) (Tbool.CONJ_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ ((cHOL4.bool./\ @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ X0) @ X1)) @ X2))))))))) (Tbool.OR_INTRO_THM1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ X0) @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (Tbool.OR_INTRO_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ X1) @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (Tbool.OR_ELIM_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X1) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X2) @ X0)) @ X0)))))))))) (Tbool.IMP_F,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.F)) @ (cHOL4.bool.~ @ X0))))) (Tbool.F_IMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.F))))) (Tbool.NOT_F,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F))))) (Tbool.NOT_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ X0) @ (cHOL4.bool.~ @ X0)))))) (Tbool.AND_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.T)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.F) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.F)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X0)) @ X0)))))))) (Tbool.OR_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.T) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ cHOL4.bool.T)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.F) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ cHOL4.bool.F)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ X0)) @ X0)))))))) (Tbool.IMP_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.==> @ cHOL4.bool.T) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.T)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.==> @ cHOL4.bool.F) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.F)) @ (cHOL4.bool.~ @ X0))))))))) (Tbool.NOT_CLAUSES,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ cHOL4.bool.T)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ cHOL4.bool.F)) @ cHOL4.bool.T)))) (Tbool.EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ X0) @ X0)))) (Tbool.REFL_CLAUSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X0)) @ cHOL4.bool.T)))) (Tbool.EQ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tbool.EQ_SYM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tbool.EQ_EXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tbool.FUN_EQ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ (X1 @ X2)))))))))) (Tbool.EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X2))))))))) (Tbool.BOOL_EQ_DISTINCT,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.bool.T) @ cHOL4.bool.F))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.bool.F) @ cHOL4.bool.T)))) (Tbool.EQ_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.bool.T) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ cHOL4.bool.T)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.bool.F) @ X0)) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F)) @ (cHOL4.bool.~ @ X0)))))))) (Tbool.COND_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.T) @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.F) @ X0) @ X1)) @ X1))))))) (Tbool.COND_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ X1)) @ X1)))))) (Tbool.SELECT_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (X0 @ (cHOL4.min.|at| @ (^[X1]: (X0 @ X1))))) @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1))))))) (Tbool.SELECT_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ X0)))) (Tbool.SELECT_REFL_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.min.= @ X0) @ X1)))) @ X0)))) (Tbool.SELECT_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ ((cHOL4.min.= @ X2) @ X1))))) @ ((cHOL4.min.= @ (cHOL4.min.|at| @ X0)) @ X1))))))) (Tbool.SELECT_ELIM_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ X2)))))) @ (X1 @ (cHOL4.min.|at| @ X0)))))))) (Tbool.NOT_FORALL_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))))))) (Tbool.NOT_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))))))) (Tbool.FORALL_AND_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))))))))) (Tbool.LEFT_AND_FORALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2)))) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ X1))))))))) (Tbool.RIGHT_AND_FORALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ X0) @ (X1 @ X2)))))))))) (Tbool.EXISTS_OR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))))))))) (Tbool.LEFT_OR_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ X1))))))))) (Tbool.RIGHT_OR_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.\/ @ X0) @ (X1 @ X2)))))))))) (Tbool.BOTH_EXISTS_AND_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ X0) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: X0))) @ (cHOL4.bool.? @ (^[X2]: X1))))))))) (Tbool.LEFT_EXISTS_AND_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ X1))))))) (Tbool.RIGHT_EXISTS_AND_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ X0) @ (X1 @ X2))))) @ ((cHOL4.bool./\ @ X0) @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))))))))) (Tbool.BOTH_FORALL_OR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ X0) @ X1)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X2]: X0))) @ (cHOL4.bool.! @ (^[X2]: X1))))))))) (Tbool.LEFT_FORALL_OR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ X0)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))) @ X0))))))) (Tbool.RIGHT_FORALL_OR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ X0) @ (X1 @ X2))))) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))))))))) (Tbool.BOTH_FORALL_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ X0) @ X1)))) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: X0))) @ (cHOL4.bool.! @ (^[X2]: X1))))))))) (Tbool.LEFT_FORALL_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ X1)))) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ X1))))))) (Tbool.RIGHT_FORALL_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ X0) @ (X1 @ X2))))) @ ((cHOL4.min.==> @ X0) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))))))))) (Tbool.BOTH_EXISTS_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.==> @ X0) @ X1)))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: X0))) @ (cHOL4.bool.? @ (^[X2]: X1))))))))) (Tbool.LEFT_EXISTS_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ X1)))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2)))) @ X1))))))) (Tbool.RIGHT_EXISTS_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.==> @ X0) @ (X1 @ X2))))) @ ((cHOL4.min.==> @ X0) @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))))))))) (Tbool.OR_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.bool.\/ @ X1) @ X0))) @ ((cHOL4.min.==> @ X1) @ X0))))))) (Tbool.NOT_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.==> @ X0) @ X1))) @ ((cHOL4.bool./\ @ X0) @ (cHOL4.bool.~ @ X1)))))))) (Tbool.DISJ_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ ((cHOL4.bool.\/ @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.\/ @ X0) @ X1)) @ X2))))))))) (Tbool.DISJ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ X1)) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (Tbool.DISJ_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ X1)) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (Tbool.DE_MORGAN_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ X0) @ X1))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1)))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1))))))))) (Tbool.LEFT_AND_OVER_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ ((cHOL4.bool.\/ @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ X0) @ X2)))))))))) (Tbool.RIGHT_AND_OVER_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X1) @ X0)) @ ((cHOL4.bool./\ @ X2) @ X0)))))))))) (Tbool.LEFT_OR_OVER_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ ((cHOL4.bool./\ @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X0) @ X1)) @ ((cHOL4.bool.\/ @ X0) @ X2)))))))))) (Tbool.RIGHT_OR_OVER_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X1) @ X0)) @ ((cHOL4.bool.\/ @ X2) @ X0)))))))))) (Tbool.IMP_DISJ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ X1))))))) (Tbool.DISJ_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ X1) @ X2)))))))))) (Tbool.IMP_CONJ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ ((cHOL4.bool./\ @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ X0) @ X2)))))))))) (Tbool.IMP_F_EQ_F,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F))))) (Tbool.AND_IMP_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X1) @ X2))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ X2))))))))) (Tbool.EQ_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ X1) @ X0)))))))) (Tbool.EQ_EXPAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1))))))))) (Tbool.COND_RATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.bool.COND @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.bool.COND @ X0) @ (X1 @ X3)) @ (X2 @ X3)))))))))))) (Tbool.COND_RAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (((cHOL4.bool.COND @ X1) @ X2) @ X3))) @ (((cHOL4.bool.COND @ X1) @ (X0 @ X2)) @ (X0 @ X3)))))))))))) (Tbool.COND_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (^[X3]: (((cHOL4.bool.COND @ X0) @ (X1 @ X3)) @ (X2 @ X3)))) @ (((cHOL4.bool.COND @ X0) @ X1) @ X2))))))))) (Tbool.COND_EXPAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ X1)) @ ((cHOL4.bool.\/ @ X0) @ X2)))))))))) (Tbool.COND_EXPAND_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ X2)))))))))) (Tbool.COND_EXPAND_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ X2)))))))))) (Tbool.TYPE_DEFINITION_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.TYPE_DEFINITION @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X0 @ X4)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X4) @ (X1 @ X2)))))))))))))) (Tbool.ONTO_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.ONTO @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ (X0 @ X2)))))))))) (Tbool.ONE_ONE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.ONE_ONE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tbool.ABS_REP_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool.TYPE_DEFINITION @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (X1 @ X3))) @ X3)))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X0 @ X4)) @ ((cHOL4.min.= @ (X1 @ (X2 @ X4))) @ X4))))))))))))) (Tbool.LET_RAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ ((cHOL4.bool.LET @ (^[X3]: (X1 @ X3))) @ X2))) @ ((cHOL4.bool.LET @ (^[X3]: (X0 @ (X1 @ X3)))) @ X2))))))))) (Tbool.LET_RATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.LET @ (^[X3]: (X1 @ X3))) @ X2) @ X0)) @ ((cHOL4.bool.LET @ (^[X3]: ((X1 @ X3) @ X0))) @ X2))))))))) (Tbool.SWAP_FORALL_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X1) @ X2)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ X2))))))))) (Tbool.SWAP_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((X0 @ X1) @ X2)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X1]: ((X0 @ X1) @ X2))))))))) (Tbool.EXISTS_UNIQUE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.?! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Tbool.LET_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ X3)) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X1 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.bool.LET @ X0) @ X2)) @ ((cHOL4.bool.LET @ X1) @ X3)))))))))))) (Tbool.IMP_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.= @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ X1) @ X3)))))))))))) (Tbool.AND_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.= @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X2)) @ ((cHOL4.bool./\ @ X1) @ X3)))))))))))) (Tbool.LEFT_AND_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.= @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X2)) @ ((cHOL4.bool./\ @ X1) @ X3)))))))))))) (Tbool.OR_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.= @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ X2)) @ ((cHOL4.bool.\/ @ X1) @ X3)))))))))))) (Tbool.LEFT_OR_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.= @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ X2)) @ ((cHOL4.bool.\/ @ X1) @ X3)))))))))))) (Tbool.COND_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.= @ X4) @ X5))))) @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X2) @ X4)) @ (((cHOL4.bool.COND @ X1) @ X3) @ X5)))))))))))))))) (Tbool.RES_FORALL_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.min.= @ (X1 @ X4)) @ (X0 @ X4)))))) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X3) @ X1)) @ ((cHOL4.bool.RES_FORALL @ X2) @ X0))))))))))))) (Tbool.RES_EXISTS_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.min.= @ (X1 @ X4)) @ (X0 @ X4)))))) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X3) @ X1)) @ ((cHOL4.bool.RES_EXISTS @ X2) @ X0))))))))))))) (Tbool.MONO_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ X1)) @ ((cHOL4.min.==> @ X0) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X2) @ X0)) @ ((cHOL4.bool./\ @ X1) @ X3)))))))))))) (Tbool.MONO_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ X1)) @ ((cHOL4.min.==> @ X0) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X2) @ X0)) @ ((cHOL4.bool.\/ @ X1) @ X3)))))))))))) (Tbool.MONO_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X1) @ X2)) @ ((cHOL4.min.==> @ X0) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X2) @ X0)) @ ((cHOL4.min.==> @ X1) @ X3)))))))))))) (Tbool.MONO_NOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0)))))))) (Tbool.MONO_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0)))))))) (Tbool.MONO_ALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2)))))))))) (Tbool.MONO_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2))))) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))))))))) (Tbool.MONO_COND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X2) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X3)) @ ((cHOL4.min.==> @ (((cHOL4.bool.COND @ X4) @ X2) @ X0)) @ (((cHOL4.bool.COND @ X4) @ X1) @ X3))))))))))))))) (Tbool.EXISTS_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))))) (Tbool.EXISTS_UNIQUE_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.?! @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))))) (Tbool.UNWIND_THM1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (X0 @ X2))))) @ (X0 @ X1))))))) (Tbool.UNWIND_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X1)) @ (X0 @ X2))))) @ (X0 @ X1))))))) (Tbool.UNWIND_FORALL_THM1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ X2)) @ (X0 @ X2))))) @ (X0 @ X1))))))) (Tbool.UNWIND_FORALL_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ X1)) @ (X0 @ X2))))) @ (X0 @ X1))))))) (Tbool.SKOLEM_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((X0 @ X1) @ X2)))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ (X3 @ X1)))))))))) (Tbool.bool_case_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.T) @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.F) @ X0) @ X1)) @ X1))))))) (Tbool.bool_case_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ X1)) @ X1)))))) (Tbool.boolAxiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.bool.T)) @ X0)) @ ((cHOL4.min.= @ (X2 @ cHOL4.bool.F)) @ X1))))))))) (Tbool.bool_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.bool.T)) @ (X0 @ cHOL4.bool.F))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tbool.bool_case_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.= @ X4) @ X5))))) @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X2) @ X4)) @ (((cHOL4.bool.COND @ X1) @ X3) @ X5)))))))))))))))) (Tbool.FORALL_BOOL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.bool.T)) @ (X0 @ cHOL4.bool.F)))))) (Tbool.UEXISTS_OR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.?! @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.?! @ (^[X2]: (X1 @ X2)))))))))) (Tbool.UEXISTS_SIMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.?! @ (^[X1]: X0))) @ ((cHOL4.bool./\ @ X0) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ X1) @ X2)))))))))) (Tbool.RES_FORALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))))) (Tbool.RES_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))))) (Tbool.RES_EXISTS_UNIQUE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X2]: ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X1 @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))))))))) (Tbool.RES_SELECT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_SELECT @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))))) (Tbool.RES_FORALL_TRUE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X1]: cHOL4.bool.T))) @ cHOL4.bool.T)))) (Tbool.RES_EXISTS_FALSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X1]: cHOL4.bool.F))) @ cHOL4.bool.F)))) (Tbool.BOOL_FUN_CASES_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (^[X1]: cHOL4.bool.T))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (^[X1]: cHOL4.bool.F))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (^[X1]: X1))) @ ((cHOL4.min.= @ X0) @ (^[X1]: (cHOL4.bool.~ @ X1))))))))) (Tbool.BOOL_FUN_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ (^[X1]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ (X0 @ (^[X1]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ (X0 @ (^[X1]: X1))) @ (X0 @ (^[X1]: (cHOL4.bool.~ @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tbool.literal_case_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.literal_case @ X0) @ X1)) @ (X0 @ X1))))))) (Tbool.literal_case_RAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ ((cHOL4.bool.literal_case @ (^[X3]: (X1 @ X3))) @ X2))) @ ((cHOL4.bool.literal_case @ (^[X3]: (X0 @ (X1 @ X3)))) @ X2))))))))) (Tbool.literal_case_RATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.literal_case @ (^[X3]: (X1 @ X3))) @ X2) @ X0)) @ ((cHOL4.bool.literal_case @ (^[X3]: ((X1 @ X3) @ X0))) @ X2))))))))) (Tbool.literal_case_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ X3)) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X1 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.bool.literal_case @ X0) @ X2)) @ ((cHOL4.bool.literal_case @ X1) @ X3)))))))))))) (Tbool.literal_case_id,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.literal_case @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X2)) @ X1) @ X0))) @ X2)) @ X1)))))))) (Tbool.BOUNDED_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.BOUNDED @ X0)) @ cHOL4.bool.T)))) (Tbool.LCOMM_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ X1) @ ((X0 @ X2) @ X3))) @ ((X0 @ ((X0 @ X1) @ X2)) @ X3))))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ X1) @ ((X0 @ X2) @ X3))) @ ((X0 @ X2) @ ((X0 @ X1) @ X3)))))))))))))) (Tbool.DATATYPE_TAG_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.DATATYPE @ X0)) @ cHOL4.bool.T)))) (Tbool.DATATYPE_BOOL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.DATATYPE @ ((X0 @ cHOL4.bool.T) @ cHOL4.bool.F))) @ cHOL4.bool.T)))) (Tbool.ITSELF_UNIQUE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ X0) @ cHOL4.bool.the_value)))) (Tbool.itself_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (X1 @ cHOL4.bool.the_value)) @ X0)))))) (Tbool.itself_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (X0 @ cHOL4.bool.the_value)) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tbool.PULL_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ X1) @ (X0 @ X2)))))))))))) (Tbool.PULL_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.==> @ X1) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ X1) @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2)))) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ X1) @ (X0 @ X2)))))))))))) (Tbool.PEIRCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X0)) @ X1)) @ X1)))))) (Tbool.JRH_INDUCT_UTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ X1)) @ (X0 @ X2))))) @ (cHOL4.bool.? @ X0))))))) (Tcanonical.canonical_sum_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((((^[X4]: (^[X5]: (^[X6]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.ind_type.FCONS @ X6) @ (^[X3]: cHOL4.ind_type.BOTTOM)))))) @ X4) @ X5) @ X6))) @ (X2 @ X6))))))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X7]: (^[X8]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ X7)) @ ((cHOL4.ind_type.FCONS @ X8) @ (^[X3]: cHOL4.ind_type.BOTTOM))))) @ X7) @ X8))) @ (X2 @ X8))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tcanonical.canonical_sum_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_CASE @ cHOL4.canonical.Nil_monom) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_CASE @ (((cHOL4.canonical.Cons_monom @ X3) @ X4) @ X5)) @ X0) @ X1) @ X2)) @ (((X1 @ X3) @ X4) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_CASE @ ((cHOL4.canonical.Cons_varlist @ X6) @ X7)) @ X0) @ X1) @ X2)) @ ((X2 @ X6) @ X7))))))))))))))) (Tcanonical.canonical_sum_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.canonical.canonical_sum_size @ X0) @ cHOL4.canonical.Nil_monom)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.canonical.canonical_sum_size @ X0) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ X3))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.list.list_size @ cHOL4.quote.index_size) @ X2)) @ ((cHOL4.canonical.canonical_sum_size @ X0) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.canonical.canonical_sum_size @ X0) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X5))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.list.list_size @ cHOL4.quote.index_size) @ X4)) @ ((cHOL4.canonical.canonical_sum_size @ X0) @ X5))))))))))))) (Tcanonical.canonical_sum_merge_tupled_primitive_def,((cHOL4.min.= @ cHOL4.canonical.canonical_sum_merge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X5) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X11]: (^[X12]: ((((cHOL4.canonical.canonical_sum_CASE @ X12) @ (cHOL4.combin.I @ X11)) @ (^[X2]: (^[X1]: (^[X3]: ((((cHOL4.canonical.canonical_sum_CASE @ X11) @ (cHOL4.combin.I @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))) @ (^[X6]: (^[X5]: (^[X4]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X5) @ X1)) @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3)))))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X7) @ X6) @ X2)) @ X5) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X6) @ X5) @ X4)) @ X3)))))))))) @ (^[X13]: (^[X14]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X1)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X14) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3)))))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X7) @ (cHOL4.semi_ring.semi_ring_SR1 @ X7)) @ X2)) @ X13) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X14) @ X3))))) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X13) @ X14)) @ X3))))))))))))) @ (^[X15]: (^[X16]: ((((cHOL4.canonical.canonical_sum_CASE @ X11) @ (cHOL4.combin.I @ ((cHOL4.canonical.Cons_varlist @ X15) @ X16))) @ (^[X17]: (^[X18]: (^[X19]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X18) @ X15)) @ (((cHOL4.canonical.Cons_monom @ X17) @ X18) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X19) @ ((cHOL4.canonical.Cons_varlist @ X15) @ X16)))))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X7) @ X17) @ (cHOL4.semi_ring.semi_ring_SR1 @ X7))) @ X18) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X19) @ X16))))) @ ((cHOL4.canonical.Cons_varlist @ X15) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.canonical.Cons_monom @ X17) @ X18) @ X19)) @ X16)))))))))) @ (^[X20]: (^[X21]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X20) @ X15)) @ ((cHOL4.canonical.Cons_varlist @ X20) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X21) @ ((cHOL4.canonical.Cons_varlist @ X15) @ X16)))))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X7) @ (cHOL4.semi_ring.semi_ring_SR1 @ X7)) @ (cHOL4.semi_ring.semi_ring_SR1 @ X7))) @ X20) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X21) @ X16))))) @ ((cHOL4.canonical.Cons_varlist @ X15) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.canonical.Cons_varlist @ X20) @ X21)) @ X16))))))))))))))))))))))) (Tcanonical.canonical_sum_merge_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X0) @ X1) @ X2)) @ (cHOL4.canonical.canonical_sum_merge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tcanonical.monom_insert_tupled_primitive_def,((cHOL4.min.= @ cHOL4.canonical.monom_insert_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3)))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3)))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X5]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X4]: (^[X11]: ((((cHOL4.canonical.canonical_sum_CASE @ X11) @ (cHOL4.combin.I @ (((cHOL4.canonical.Cons_monom @ X5) @ X4) @ cHOL4.canonical.Nil_monom))) @ (^[X2]: (^[X1]: (^[X3]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X1)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X6) @ X5) @ X2)) @ X4) @ X3)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))) @ (^[X12]: (^[X13]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X4) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X13))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X6) @ X5) @ (cHOL4.semi_ring.semi_ring_SR1 @ X6))) @ X4) @ X13)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X13)))))))))))))))))))))))) (Tcanonical.monom_insert_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.canonical.monom_insert @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.canonical.monom_insert_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tcanonical.varlist_insert_tupled_primitive_def,((cHOL4.min.= @ cHOL4.canonical.varlist_insert_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.canonical.Cons_varlist @ X1) @ X3))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X4]: (^[X9]: ((((cHOL4.canonical.canonical_sum_CASE @ X9) @ (cHOL4.combin.I @ ((cHOL4.canonical.Cons_varlist @ X4) @ cHOL4.canonical.Nil_monom))) @ (^[X2]: (^[X1]: (^[X3]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X1)) @ ((cHOL4.canonical.Cons_varlist @ X4) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X3))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X5) @ (cHOL4.semi_ring.semi_ring_SR1 @ X5)) @ X2)) @ X4) @ X3)) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))) @ (^[X10]: (^[X11]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X4) @ ((cHOL4.canonical.Cons_varlist @ X10) @ X11))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X5) @ (cHOL4.semi_ring.semi_ring_SR1 @ X5)) @ (cHOL4.semi_ring.semi_ring_SR1 @ X5))) @ X4) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X10) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X11)))))))))))))))))))) (Tcanonical.varlist_insert_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.varlist_insert @ X0) @ X1) @ X2)) @ (cHOL4.canonical.varlist_insert_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tcanonical.canonical_sum_scalar_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_scalar @ X0) @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ X3) @ (((cHOL4.canonical.canonical_sum_scalar @ X0) @ X1) @ X4)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_scalar @ X0) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4))) @ (((cHOL4.canonical.Cons_monom @ X1) @ X3) @ (((cHOL4.canonical.canonical_sum_scalar @ X0) @ X1) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_scalar @ X0) @ X1) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) (Tcanonical.canonical_sum_scalar2_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4))) @ ((((cHOL4.canonical.monom_insert @ X0) @ X2) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X1) @ X3)) @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X1) @ X4)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4))) @ (((cHOL4.canonical.varlist_insert @ X0) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X1) @ X3)) @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X1) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X1) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) (Tcanonical.canonical_sum_scalar3_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X1) @ X2) @ (((cHOL4.canonical.Cons_monom @ X3) @ X4) @ X5))) @ ((((cHOL4.canonical.monom_insert @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X3)) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X2) @ X4)) @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X1) @ X2) @ X5)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X1) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X5))) @ ((((cHOL4.canonical.monom_insert @ X0) @ X1) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X2) @ X4)) @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X1) @ X2) @ X5)))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X1) @ X2) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))))) (Tcanonical.canonical_sum_prod_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ X3)) @ X4)) @ (((cHOL4.canonical.canonical_sum_merge @ X0) @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X1) @ X2) @ X4)) @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ X3) @ X4)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3)) @ X4)) @ (((cHOL4.canonical.canonical_sum_merge @ X0) @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X2) @ X4)) @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ X3) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ cHOL4.canonical.Nil_monom) @ X4)) @ cHOL4.canonical.Nil_monom)))))))) (Tcanonical.canonical_sum_simplify_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))) @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0))) @ ((cHOL4.canonical.Cons_varlist @ X2) @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ X3))) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ X3)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3))) @ ((cHOL4.canonical.Cons_varlist @ X2) @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) (Tcanonical.ivl_aux_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.ivl_aux @ X0) @ X1) @ X2) @ cHOL4.list.NIL)) @ ((cHOL4.quote.varmap_find @ X2) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.canonical.ivl_aux @ X0) @ X1) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ ((cHOL4.quote.varmap_find @ X2) @ X1)) @ ((((cHOL4.canonical.ivl_aux @ X0) @ X1) @ X3) @ X4))))))))))))))) (Tcanonical.interp_vl_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ cHOL4.list.NIL)) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((((cHOL4.canonical.ivl_aux @ X0) @ X1) @ X2) @ X3)))))))))))) (Tcanonical.interp_m_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.interp_m @ X0) @ X1) @ X2) @ cHOL4.list.NIL)) @ X2)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.canonical.interp_m @ X0) @ X1) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ ((((cHOL4.canonical.ivl_aux @ X0) @ X1) @ X3) @ X4))))))))))))))) (Tcanonical.ics_aux_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ X2) @ cHOL4.canonical.Nil_monom)) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X3)) @ X4)))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ X2) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X4))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ ((((cHOL4.canonical.interp_m @ X0) @ X1) @ X5) @ X3)) @ X4)))))))))))))))))) (Tcanonical.interp_cs_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ cHOL4.canonical.Nil_monom)) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3))) @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X2)) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X3))) @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ ((((cHOL4.canonical.interp_m @ X0) @ X1) @ X4) @ X2)) @ X3))))))))))))))) (Tcanonical.spolynom_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X3) @ cHOL4.bool.ARB)) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X3))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((^[X5]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ X5)) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X5))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X6]: (^[X7]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ ((cHOL4.ind_type.FCONS @ X6) @ ((cHOL4.ind_type.FCONS @ X7) @ (^[X4]: cHOL4.ind_type.BOTTOM)))))) @ X6) @ X7))) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X2 @ X7)))))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X6]: (^[X7]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ ((cHOL4.ind_type.FCONS @ X6) @ ((cHOL4.ind_type.FCONS @ X7) @ (^[X4]: cHOL4.ind_type.BOTTOM)))))) @ X6) @ X7))) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X2 @ X7))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tcanonical.spolynom_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.canonical.spolynom_CASE @ (cHOL4.canonical.SPvar @ X0)) @ X1) @ X2) @ X3) @ X4)) @ (X1 @ X0))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.canonical.spolynom_CASE @ (cHOL4.canonical.SPconst @ X5)) @ X1) @ X2) @ X3) @ X4)) @ (X2 @ X5))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.canonical.spolynom_CASE @ ((cHOL4.canonical.SPplus @ X6) @ X7)) @ X1) @ X2) @ X3) @ X4)) @ ((X3 @ X6) @ X7))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.canonical.spolynom_CASE @ ((cHOL4.canonical.SPmult @ X6) @ X7)) @ X1) @ X2) @ X3) @ X4)) @ ((X4 @ X6) @ X7)))))))))))))))))) (Tcanonical.spolynom_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_size @ X0) @ (cHOL4.canonical.SPvar @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.quote.index_size @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_size @ X0) @ (cHOL4.canonical.SPconst @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_size @ X0) @ ((cHOL4.canonical.SPplus @ X3) @ X4))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.canonical.spolynom_size @ X0) @ X3)) @ ((cHOL4.canonical.spolynom_size @ X0) @ X4))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_size @ X0) @ ((cHOL4.canonical.SPmult @ X3) @ X4))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.canonical.spolynom_size @ X0) @ X3)) @ ((cHOL4.canonical.spolynom_size @ X0) @ X4)))))))))))))) (Tcanonical.spolynom_normalize_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_normalize @ X0) @ (cHOL4.canonical.SPvar @ X1))) @ ((cHOL4.canonical.Cons_varlist @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL)) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_normalize @ X0) @ (cHOL4.canonical.SPconst @ X2))) @ (((cHOL4.canonical.Cons_monom @ X2) @ cHOL4.list.NIL) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_normalize @ X0) @ ((cHOL4.canonical.SPplus @ X3) @ X4))) @ (((cHOL4.canonical.canonical_sum_merge @ X0) @ ((cHOL4.canonical.spolynom_normalize @ X0) @ X3)) @ ((cHOL4.canonical.spolynom_normalize @ X0) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_normalize @ X0) @ ((cHOL4.canonical.SPmult @ X3) @ X4))) @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ ((cHOL4.canonical.spolynom_normalize @ X0) @ X3)) @ ((cHOL4.canonical.spolynom_normalize @ X0) @ X4))))))))))))) (Tcanonical.spolynom_simplify_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.canonical.spolynom_simplify @ X0) @ X1)) @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ ((cHOL4.canonical.spolynom_normalize @ X0) @ X1)))))))) (Tcanonical.interp_sp_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ (cHOL4.canonical.SPconst @ X2))) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ (cHOL4.canonical.SPvar @ X3))) @ ((cHOL4.quote.varmap_find @ X3) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ ((cHOL4.canonical.SPplus @ X4) @ X5))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ X4)) @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ X5)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ ((cHOL4.canonical.SPmult @ X4) @ X5))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ X4)) @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ X5))))))))))))))) (Tcanonical.datatype_canonical_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.canonical.Nil_monom) @ cHOL4.canonical.Cons_monom) @ cHOL4.canonical.Cons_varlist))))) (Tcanonical.canonical_sum_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.canonical.Cons_monom @ X0) @ X1) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X3) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X4)) @ ((cHOL4.min.= @ X2) @ X5))))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.canonical.Cons_varlist @ X6) @ X7)) @ ((cHOL4.canonical.Cons_varlist @ X8) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X6) @ X8)) @ ((cHOL4.min.= @ X7) @ X9))))))))))))) (Tcanonical.canonical_sum_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X3)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.canonical.Cons_monom @ X2) @ X1) @ X0)) @ ((cHOL4.canonical.Cons_varlist @ X6) @ X5)))))))))))))))) (Tcanonical.canonical_sum_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.min.= @ X5) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (((cHOL4.canonical.Cons_monom @ X8) @ X9) @ X10))) @ ((cHOL4.min.= @ (((X6 @ X8) @ X9) @ X10)) @ (((X2 @ X8) @ X9) @ X10)))))))))) @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ ((cHOL4.canonical.Cons_varlist @ X11) @ X12))) @ ((cHOL4.min.= @ ((X7 @ X11) @ X12)) @ ((X1 @ X11) @ X12))))))))))) @ ((cHOL4.min.= @ ((((cHOL4.canonical.canonical_sum_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.canonical.canonical_sum_CASE @ X4) @ X0) @ X2) @ X1)))))))))))))))))))) (Tcanonical.canonical_sum_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ X3))))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3))))))))))) (Tcanonical.canonical_sum_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.canonical.Nil_monom)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X3 @ (((cHOL4.canonical.Cons_monom @ X4) @ X5) @ X6))) @ ((((X1 @ X4) @ X5) @ X6) @ (X3 @ X6)))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ (X3 @ ((cHOL4.canonical.Cons_varlist @ X7) @ X8))) @ (((X2 @ X7) @ X8) @ (X3 @ X8)))))))))))))))))) (Tcanonical.canonical_sum_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ (((cHOL4.canonical.Cons_monom @ X3) @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.canonical.Cons_varlist @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tcanonical.canonical_sum_merge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ X7)) @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ (((cHOL4.canonical.Cons_monom @ X5) @ X6) @ X7))) @ (((X0 @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4)) @ X7)))) @ (((X0 @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X6) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ X7)) @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ ((cHOL4.canonical.Cons_varlist @ X6) @ X7))) @ (((X0 @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4)) @ X7)))) @ (((X0 @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X6) @ X7)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ X7)) @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ (((cHOL4.canonical.Cons_monom @ X5) @ X6) @ X7))) @ (((X0 @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4)) @ X7)))) @ (((X0 @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X6) @ X7)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ X7)) @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X4) @ ((cHOL4.canonical.Cons_varlist @ X6) @ X7))) @ (((X0 @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4)) @ X7)))) @ (((X0 @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4)) @ ((cHOL4.canonical.Cons_varlist @ X6) @ X7)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X1) @ X8) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (((X0 @ X1) @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X9) @ X10) @ X11))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (((X0 @ X1) @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X13))))))))))))))) @ (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X16]: (((X0 @ X14) @ X15) @ X16))))))))))) (Tcanonical.canonical_sum_merge_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X1)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X0)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X2) @ X6) @ X5)) @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ X0))) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X1)) @ X0))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X1)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X0)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X2) @ X6) @ (cHOL4.semi_ring.semi_ring_SR1 @ X2))) @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ X0))) @ ((cHOL4.canonical.Cons_varlist @ X3) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X1)) @ X0))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X1)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ ((cHOL4.canonical.Cons_varlist @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X0)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X2) @ (cHOL4.semi_ring.semi_ring_SR1 @ X2)) @ X5)) @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ X0))) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X1)) @ X0))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X1)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ ((cHOL4.canonical.Cons_varlist @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X0)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X2) @ (cHOL4.semi_ring.semi_ring_SR1 @ X2)) @ (cHOL4.semi_ring.semi_ring_SR1 @ X2))) @ X4) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X1) @ X0))) @ ((cHOL4.canonical.Cons_varlist @ X3) @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X1)) @ X0))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ X7) @ cHOL4.canonical.Nil_monom)) @ X7)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X10) @ X9) @ X8))) @ (((cHOL4.canonical.Cons_monom @ X10) @ X9) @ X8))))))))))) @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.canonical_sum_merge @ X2) @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X11))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X11))))))))))))))) (Tcanonical.monom_insert_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((((X0 @ X1) @ X2) @ X3) @ X6)) @ ((((X0 @ X1) @ X2) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X5) @ X6)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((((X0 @ X1) @ X2) @ X3) @ X6)) @ ((((X0 @ X1) @ X2) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X5) @ X6)))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ X2) @ X3) @ cHOL4.canonical.Nil_monom)))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((((X0 @ X7) @ X8) @ X9) @ X10))))))))))))) (Tcanonical.monom_insert_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.canonical.monom_insert @ X1) @ X5) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X0))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X1) @ X5) @ X4)) @ X3) @ X0)) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ ((((cHOL4.canonical.monom_insert @ X1) @ X5) @ X3) @ X0))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.canonical.monom_insert @ X1) @ X5) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X0))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X1) @ X5) @ (cHOL4.semi_ring.semi_ring_SR1 @ X1))) @ X3) @ X0)) @ ((cHOL4.canonical.Cons_varlist @ X2) @ ((((cHOL4.canonical.monom_insert @ X1) @ X5) @ X3) @ X0))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.canonical.monom_insert @ X1) @ X5) @ X3) @ cHOL4.canonical.Nil_monom)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ cHOL4.canonical.Nil_monom))))))))))) (Tcanonical.varlist_insert_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X5)) @ (((X0 @ X1) @ X2) @ (((cHOL4.canonical.Cons_monom @ X3) @ X4) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X5)) @ (((X0 @ X1) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X5)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.canonical.Nil_monom)))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (Tcanonical.varlist_insert_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.varlist_insert @ X1) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X0))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X1) @ (cHOL4.semi_ring.semi_ring_SR1 @ X1)) @ X4)) @ X3) @ X0)) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ (((cHOL4.canonical.varlist_insert @ X1) @ X3) @ X0))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.varlist_insert @ X1) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X0))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X0))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.semi_ring.semi_ring_SRP @ X1) @ (cHOL4.semi_ring.semi_ring_SR1 @ X1)) @ (cHOL4.semi_ring.semi_ring_SR1 @ X1))) @ X3) @ X0)) @ ((cHOL4.canonical.Cons_varlist @ X2) @ (((cHOL4.canonical.varlist_insert @ X1) @ X3) @ X0))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.varlist_insert @ X1) @ X3) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ cHOL4.canonical.Nil_monom))))))))) (Tcanonical.ivl_aux_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.canonical.ivl_aux @ X0) @ X1) @ X3) @ X2)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ ((cHOL4.quote.varmap_find @ X3) @ X1)) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X2))))))))))))) (Tcanonical.varlist_merge_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X2)) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X3))))))))))))) (Tcanonical.ics_aux_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.canonical.ics_aux @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X3))))))))))))) (Tcanonical.interp_m_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.canonical.interp_m @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X3))))))))))))) (Tcanonical.canonical_sum_merge_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ (((cHOL4.canonical.canonical_sum_merge @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X2)) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X3))))))))))))) (Tcanonical.monom_insert_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ ((((cHOL4.canonical.monom_insert @ X0) @ X2) @ X3) @ X4))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X3))) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X4))))))))))))))) (Tcanonical.varlist_insert_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ (((cHOL4.canonical.varlist_insert @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X2)) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X3))))))))))))) (Tcanonical.canonical_sum_scalar_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ (((cHOL4.canonical.canonical_sum_scalar @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X3))))))))))))) (Tcanonical.canonical_sum_scalar2_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ (((cHOL4.canonical.canonical_sum_scalar2 @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X2)) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X3))))))))))))) (Tcanonical.canonical_sum_scalar3_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ ((((cHOL4.canonical.canonical_sum_scalar3 @ X0) @ X2) @ X3) @ X4))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ (((cHOL4.canonical.interp_vl @ X0) @ X1) @ X3))) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X4))))))))))))))) (Tcanonical.canonical_sum_prod_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ (((cHOL4.canonical.canonical_sum_prod @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X2)) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X3))))))))))))) (Tcanonical.canonical_sum_simplify_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ ((cHOL4.canonical.canonical_sum_simplify @ X0) @ X2))) @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ X2)))))))))) (Tcanonical.datatype_spolynom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((((X0 @ cHOL4.canonical.SPvar) @ cHOL4.canonical.SPconst) @ cHOL4.canonical.SPplus) @ cHOL4.canonical.SPmult))))) (Tcanonical.spolynom_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.canonical.SPvar @ X0)) @ (cHOL4.canonical.SPvar @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.canonical.SPconst @ X2)) @ (cHOL4.canonical.SPconst @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.canonical.SPplus @ X4) @ X5)) @ ((cHOL4.canonical.SPplus @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X6)) @ ((cHOL4.min.= @ X5) @ X7)))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.canonical.SPmult @ X4) @ X5)) @ ((cHOL4.canonical.SPmult @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X6)) @ ((cHOL4.min.= @ X5) @ X7))))))))))))))) (Tcanonical.spolynom_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.canonical.SPvar @ X1)) @ (cHOL4.canonical.SPconst @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.canonical.SPvar @ X1)) @ ((cHOL4.canonical.SPplus @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.canonical.SPvar @ X1)) @ ((cHOL4.canonical.SPmult @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.canonical.SPconst @ X4)) @ ((cHOL4.canonical.SPplus @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.canonical.SPconst @ X4)) @ ((cHOL4.canonical.SPmult @ X3) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.canonical.SPplus @ X3) @ X2)) @ ((cHOL4.canonical.SPmult @ X6) @ X5))))))))))))))))) (Tcanonical.spolynom_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ (cHOL4.canonical.SPvar @ X10))) @ ((cHOL4.min.= @ (X6 @ X10)) @ (X3 @ X10)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ (cHOL4.canonical.SPconst @ X11))) @ ((cHOL4.min.= @ (X7 @ X11)) @ (X2 @ X11)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ ((cHOL4.canonical.SPplus @ X12) @ X13))) @ ((cHOL4.min.= @ ((X8 @ X12) @ X13)) @ ((X1 @ X12) @ X13)))))))) @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ ((cHOL4.canonical.SPmult @ X12) @ X13))) @ ((cHOL4.min.= @ ((X9 @ X12) @ X13)) @ ((X0 @ X12) @ X13)))))))))))) @ ((cHOL4.min.= @ (((((cHOL4.canonical.spolynom_CASE @ X4) @ X6) @ X7) @ X8) @ X9)) @ (((((cHOL4.canonical.spolynom_CASE @ X5) @ X3) @ X2) @ X1) @ X0)))))))))))))))))))))))) (Tcanonical.spolynom_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.canonical.SPvar @ X1))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ (cHOL4.canonical.SPconst @ X2))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((cHOL4.canonical.SPplus @ X3) @ X4))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((cHOL4.canonical.SPmult @ X3) @ X4)))))))))))) (Tcanonical.spolynom_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (X4 @ (cHOL4.canonical.SPvar @ X5))) @ (X0 @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X4 @ (cHOL4.canonical.SPconst @ X6))) @ (X1 @ X6))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ (X4 @ ((cHOL4.canonical.SPplus @ X7) @ X8))) @ ((((X2 @ X7) @ X8) @ (X4 @ X7)) @ (X4 @ X8)))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ (X4 @ ((cHOL4.canonical.SPmult @ X7) @ X8))) @ ((((X3 @ X7) @ X8) @ (X4 @ X7)) @ (X4 @ X8))))))))))))))))))))) (Tcanonical.spolynom_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.canonical.SPvar @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.canonical.SPconst @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (X0 @ X4))) @ (X0 @ ((cHOL4.canonical.SPplus @ X3) @ X4)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (X0 @ X4))) @ (X0 @ ((cHOL4.canonical.SPmult @ X3) @ X4))))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tcanonical.spolynomial_normalize_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ ((cHOL4.canonical.spolynom_normalize @ X0) @ X2))) @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ X2)))))))))) (Tcanonical.spolynomial_simplify_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.canonical.interp_cs @ X0) @ X1) @ ((cHOL4.canonical.spolynom_simplify @ X0) @ X2))) @ (((cHOL4.canonical.interp_sp @ X0) @ X1) @ X2)))))))))) (TCoder.decode_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Coder.decode @ X0) @ X1) @ X2)) @ (((cHOL4.option.option_CASE @ (X1 @ X2)) @ (cHOL4.min.|at| @ (^[X3]: (X0 @ X3)))) @ (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X3]: (^[X5]: X3))))))))))))) (TCoder.wf_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.wf_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.Encode.wf_pred @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.Decode.enc2dec @ X0) @ X1)))))))))))) (TCoder.domain_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.domain @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X0)))))))) (TCoder.encoder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.encoder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X1)))))))) (TCoder.decoder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.decoder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.Coder.decode @ X0) @ X2))))))))) (TCoder.unit_coder_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Coder.unit_coder @ X0)) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ cHOL4.Encode.encode_unit) @ (cHOL4.Decode.decode_unit @ X0))))))) (TCoder.bool_coder_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Coder.bool_coder @ X0)) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ cHOL4.Encode.encode_bool) @ (cHOL4.Decode.decode_bool @ X0))))))) (TCoder.prod_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.Coder.prod_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.lift_prod @ X0) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.encode_prod @ X1) @ X4)) @ (((cHOL4.Decode.decode_prod @ ((cHOL4.Encode.lift_prod @ X0) @ X3)) @ X2) @ X5))))))))))))))))) (TCoder.sum_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.Coder.sum_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.lift_sum @ X0) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.encode_sum @ X1) @ X4)) @ (((cHOL4.Decode.decode_sum @ ((cHOL4.Encode.lift_sum @ X0) @ X3)) @ X2) @ X5))))))))))))))))) (TCoder.option_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.option_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.pair.|comma| @ (cHOL4.Encode.lift_option @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.Encode.encode_option @ X1)) @ ((cHOL4.Decode.decode_option @ (cHOL4.Encode.lift_option @ X0)) @ X2))))))))))) (TCoder.list_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.list_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.pair.|comma| @ (cHOL4.list.EVERY @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.Encode.encode_list @ X1)) @ ((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ X0)) @ X2))))))))))) (TCoder.blist_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.Coder.blist_coder @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.encode_blist @ X0) @ X2)) @ (((cHOL4.Decode.decode_blist @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ X0) @ X3))))))))))))) (TCoder.num_coder_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Coder.num_coder @ X0)) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ cHOL4.Encode.encode_num) @ (cHOL4.Decode.decode_num @ X0))))))) (TCoder.bnum_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Coder.bnum_coder @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.Encode.encode_bnum @ X0)) @ ((cHOL4.Decode.decode_bnum @ X0) @ X1))))))))) (TCoder.tree_coder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Coder.tree_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.pair.|comma| @ (cHOL4.Encode.lift_tree @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.Encode.encode_tree @ X1)) @ ((cHOL4.Decode.decode_tree @ (cHOL4.Encode.lift_tree @ X0)) @ X2))))))))))) (TCoder.decode_encode,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ (((cHOL4.Coder.decode @ X0) @ ((cHOL4.Decode.enc2dec @ X0) @ X1)) @ (X1 @ X2))) @ X2))))))))) (TCoder.wf_coder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Coder.domain @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.Coder.decoder @ X0) @ ((cHOL4.Coder.encoder @ X0) @ X1))) @ X1)))))))) (TCoder.wf_coder_closed,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.Coder.domain @ X0) @ ((cHOL4.Coder.decoder @ X0) @ X1)))))))) (TCoder.wf_coder_op,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (X0 @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3)))))))) @ (cHOL4.Coder.wf_coder @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.Decode.enc2dec @ X0) @ X2)))))))))))) (TCoder.wf_coder_unit,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Encode.wf_pred @ X0)) @ (cHOL4.Coder.wf_coder @ (cHOL4.Coder.unit_coder @ X0)))))) (TCoder.wf_coder_bool,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Encode.wf_pred @ X0)) @ (cHOL4.Coder.wf_coder @ (cHOL4.Coder.bool_coder @ X0)))))) (TCoder.wf_coder_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.Coder.wf_coder @ X1))) @ (cHOL4.Coder.wf_coder @ ((cHOL4.Coder.prod_coder @ X0) @ X1)))))))) (TCoder.wf_coder_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.Coder.wf_coder @ X1))) @ (cHOL4.Coder.wf_coder @ ((cHOL4.Coder.sum_coder @ X0) @ X1)))))))) (TCoder.wf_coder_option,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.Coder.wf_coder @ (cHOL4.Coder.option_coder @ X0)))))) (TCoder.wf_coder_list,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.Coder.wf_coder @ (cHOL4.Coder.list_coder @ X0)))))) (TCoder.wf_coder_blist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.Coder.wf_coder @ X1)) @ (cHOL4.Coder.wf_coder @ ((cHOL4.Coder.blist_coder @ X0) @ X1)))))))) (TCoder.wf_coder_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Encode.wf_pred @ X0)) @ (cHOL4.Coder.wf_coder @ (cHOL4.Coder.num_coder @ X0)))))) (TCoder.wf_coder_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_pred_bnum @ X0) @ X1)) @ (cHOL4.Coder.wf_coder @ ((cHOL4.Coder.bnum_coder @ X0) @ X1)))))))) (TCoder.wf_coder_tree,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.Coder.wf_coder @ X0)) @ (cHOL4.Coder.wf_coder @ (cHOL4.Coder.tree_coder @ X0)))))) (Tcombin.K_DEF,((cHOL4.min.= @ cHOL4.combin.K) @ (^[X0]: (^[X1]: X0)))) (Tcombin.S_DEF,((cHOL4.min.= @ cHOL4.combin.S) @ (^[X0]: (^[X1]: (^[X2]: ((X0 @ X2) @ (X1 @ X2))))))) (Tcombin.I_DEF,((cHOL4.min.= @ cHOL4.combin.I) @ ((cHOL4.combin.S @ cHOL4.combin.K) @ cHOL4.combin.K))) (Tcombin.C_DEF,((cHOL4.min.= @ cHOL4.combin.C) @ (^[X0]: (^[X1]: (^[X2]: ((X0 @ X2) @ X1)))))) (Tcombin.W_DEF,((cHOL4.min.= @ cHOL4.combin.W) @ (^[X0]: (^[X1]: ((X0 @ X1) @ X1))))) (Tcombin.o_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ X0) @ X1)) @ (^[X2]: (X0 @ (X1 @ X2))))))))) (Tcombin.APP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.|colon|> @ X0) @ X1)) @ (X1 @ X0))))))) (Tcombin.UPDATE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.UPDATE @ X0) @ X1)) @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X3)) @ X1) @ (X2 @ X3)))))))))) (Tcombin.FAIL_DEF,((cHOL4.min.= @ cHOL4.combin.FAIL) @ (^[X0]: (^[X1]: X0)))) (Tcombin.o_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.combin.o @ X0) @ X1) @ X2)) @ (X0 @ (X1 @ X2)))))))))) (Tcombin.o_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.combin.o @ X0) @ ((cHOL4.combin.o @ X1) @ X2))) @ ((cHOL4.combin.o @ ((cHOL4.combin.o @ X0) @ X1)) @ X2))))))))) (Tcombin.o_ABS_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (^[X2]: (X1 @ X2))) @ X0)) @ (^[X3]: (X1 @ (X0 @ X3))))))))) (Tcombin.o_ABS_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ X1) @ (^[X2]: (X0 @ X2)))) @ (^[X2]: (X1 @ (X0 @ X2))))))))) (Tcombin.K_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.K @ X0) @ X1)) @ X0)))))) (Tcombin.S_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.combin.S @ X0) @ X1) @ X2)) @ ((X0 @ X2) @ (X1 @ X2)))))))))) (Tcombin.S_ABS_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.S @ (^[X2]: (X1 @ X2))) @ X0)) @ (^[X2]: ((X1 @ X2) @ (X0 @ X2))))))))) (Tcombin.S_ABS_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.S @ X1) @ (^[X2]: (X0 @ X2)))) @ (^[X2]: ((X1 @ X2) @ (X0 @ X2))))))))) (Tcombin.C_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.combin.C @ X0) @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))))) (Tcombin.C_ABS_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.C @ (^[X2]: (X1 @ X2))) @ X0)) @ (^[X2]: ((X1 @ X2) @ X0)))))))) (Tcombin.W_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.W @ X0) @ X1)) @ ((X0 @ X1) @ X1))))))) (Tcombin.I_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.combin.I @ X0)) @ X0)))) (Tcombin.I_o_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.combin.I) @ X0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.combin.o @ X0) @ cHOL4.combin.I)) @ X0))))) (Tcombin.K_o_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.combin.K @ X1)) @ X0)) @ (cHOL4.combin.K @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ X2) @ (cHOL4.combin.K @ X3))) @ (cHOL4.combin.K @ (X2 @ X3))))))))) (Tcombin.UPDATE_APPLY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.combin.UPDATE @ X0) @ X1) @ X2) @ X0)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.min.= @ ((((cHOL4.combin.UPDATE @ X3) @ X5) @ X6) @ X4)) @ (X6 @ X4))))))))))))) (Tcombin.APPLY_UPDATE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.combin.UPDATE @ X1) @ X2) @ X0) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X3)) @ X2) @ (X0 @ X3)))))))))))) (Tcombin.UPDATE_COMMUTES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ X0))) @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0))))))))))))))) (Tcombin.UPDATE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ (((cHOL4.combin.UPDATE @ X1) @ X2) @ X0))) @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0))))))))))) (Tcombin.UPDATE_APPLY_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X2) @ X0)) @ X0))))))))) (Tcombin.UPDATE_APPLY_IMP_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X2)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X2) @ X1) @ X0)) @ X0))))))))) (Tcombin.APPLY_UPDATE_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ (X0 @ X1)) @ X0)) @ X0)))))) (Tcombin.UPD11_SAME_BASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0)) @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0)) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ X0)) @ X0)))))))))))))))) (Tcombin.SAME_KEY_UPDATE_DIFFER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X3) @ X4) @ X0)) @ (((cHOL4.combin.UPDATE @ X3) @ X5) @ X0))))))))))))))))) (Tcombin.UPD11_SAME_KEY_AND_BASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X2) @ X0)) @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tcombin.UPD_SAME_KEY_UNWIND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X2) @ X3) @ X0)) @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X2) @ X5) @ X0)) @ (((cHOL4.combin.UPDATE @ X2) @ X5) @ X1))))))))))))))))) (Tcombin.GEN_LET_RAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X2 @ ((cHOL4.bool.LET @ X1) @ X0))) @ ((cHOL4.bool.LET @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) (Tcombin.GEN_LET_RATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.LET @ X2) @ X1) @ X0)) @ ((cHOL4.bool.LET @ ((cHOL4.combin.C @ X2) @ X0)) @ X1))))))))) (Tcombin.LET_FORALL_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.LET @ X1) @ X0)) @ (cHOL4.bool.! @ ((cHOL4.combin.S @ ((cHOL4.combin.o @ cHOL4.min.==>) @ ((cHOL4.combin.o @ cHOL4.marker.Abbrev) @ ((cHOL4.combin.C @ cHOL4.min.=) @ X0)))) @ X1)))))))) (Tcombin.GEN_literal_case_RAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X2 @ ((cHOL4.bool.literal_case @ X1) @ X0))) @ ((cHOL4.bool.literal_case @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) (Tcombin.GEN_literal_case_RATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.literal_case @ X2) @ X1) @ X0)) @ ((cHOL4.bool.literal_case @ ((cHOL4.combin.C @ X2) @ X0)) @ X1))))))))) (Tcombin.literal_case_FORALL_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.literal_case @ X1) @ X0)) @ (cHOL4.bool.! @ ((cHOL4.combin.S @ ((cHOL4.combin.o @ cHOL4.min.==>) @ ((cHOL4.combin.o @ cHOL4.marker.Abbrev) @ ((cHOL4.combin.C @ cHOL4.min.=) @ X0)))) @ X1)))))))) (Tcombin.FAIL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.FAIL @ X1) @ X0)) @ X1)))))) (Tcomplex.RE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.RE @ X0)) @ (cHOL4.pair.FST @ X0))))) (Tcomplex.IM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.IM @ X0)) @ (cHOL4.pair.SND @ X0))))) (Tcomplex.complex_of_real,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_of_real @ X0)) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tcomplex.complex_of_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_of_num @ X0)) @ (cHOL4.complex.complex_of_real @ (cHOL4.real.real_of_num @ X0)))))) (Tcomplex.i,((cHOL4.min.= @ cHOL4.complex.i) @ ((cHOL4.pair.|comma| @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tcomplex.complex_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.realax.real_add @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.RE @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.IM @ X1))))))))) (Tcomplex.complex_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.realax.real_neg @ (cHOL4.complex.RE @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.complex.IM @ X0))))))) (Tcomplex.complex_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.RE @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.IM @ X1)))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.IM @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.RE @ X1)))))))))) (Tcomplex.complex_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.complex.RE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.complex.IM @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ (cHOL4.realax.real_neg @ (cHOL4.complex.IM @ X0))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.complex.RE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.complex.IM @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Tcomplex.complex_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ ((cHOL4.complex.complex_add @ X0) @ (cHOL4.complex.complex_neg @ X1)))))))) (Tcomplex.complex_div,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.complex_inv @ X1)))))))) (Tcomplex.complex_scalar_lmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.complex.RE @ X1))) @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.complex.IM @ X1))))))))) (Tcomplex.complex_scalar_rmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.realax.real_mul @ (cHOL4.complex.RE @ X0)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.complex.IM @ X0)) @ X1)))))))) (Tcomplex.conj,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.conj @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.complex.RE @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.complex.IM @ X0))))))) (Tcomplex.modu,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.modu @ X0)) @ (cHOL4.transc.sqrt @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.complex.RE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.complex.IM @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Tcomplex.arg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.arg @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.complex.IM @ X0))) @ (cHOL4.transc.acs @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0)))) @ ((cHOL4.realax.real_add @ (cHOL4.realax.real_neg @ (cHOL4.transc.acs @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0))))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.transc.pi))))))) (Tcomplex.complex_pow_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ cHOL4.num.0)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.complex.complex_mul @ X0) @ ((cHOL4.complex.complex_pow @ X0) @ X1))))))))) (Tcomplex.complex_exp,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ X0)) @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.transc.exp @ (cHOL4.complex.RE @ X0))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ (cHOL4.complex.IM @ X0))) @ (cHOL4.transc.sin @ (cHOL4.complex.IM @ X0)))))))) (Tcomplex.COMPLEX_LEMMA1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X3)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))) (Tcomplex.COMPLEX_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X0)) @ (cHOL4.transc.sqrt @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tcomplex.COMPLEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.IM @ X0))) @ X0)))) (Tcomplex.COMPLEX_RE_IM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.RE @ X1))) @ ((cHOL4.min.= @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.IM @ X1))))))))) (Tcomplex.RE_COMPLEX_OF_REAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.RE @ (cHOL4.complex.complex_of_real @ X0))) @ X0)))) (Tcomplex.IM_COMPLEX_OF_REAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.IM @ (cHOL4.complex.complex_of_real @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_0,((cHOL4.min.= @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ (cHOL4.complex.complex_of_real @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) (Tcomplex.COMPLEX_1,((cHOL4.min.= @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.complex.complex_of_real @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tcomplex.COMPLEX_10,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) (Tcomplex.COMPLEX_0_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.complex.RE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.complex.IM @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tcomplex.COMPLEX_ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ ((cHOL4.complex.complex_add @ X1) @ X0))))))) (Tcomplex.COMPLEX_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ ((cHOL4.complex.complex_add @ X1) @ X2))) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ X2))))))))) (Tcomplex.COMPLEX_ADD_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ X0)))) (Tcomplex.COMPLEX_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (Tcomplex.COMPLEX_ADD_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ (cHOL4.complex.complex_neg @ X0)) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_MUL_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X1) @ X0))))))) (Tcomplex.COMPLEX_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ ((cHOL4.complex.complex_mul @ X1) @ X2))) @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ X2))))))))) (Tcomplex.COMPLEX_MUL_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tcomplex.COMPLEX_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (Tcomplex.COMPLEX_MUL_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.complex_inv @ X0))) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_inv @ X0)) @ X0)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_ADD_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ ((cHOL4.complex.complex_add @ X1) @ X2))) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ X2)))))))))) (Tcomplex.COMPLEX_ADD_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_mul @ X0) @ X2)) @ ((cHOL4.complex.complex_mul @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ ((cHOL4.complex.complex_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tcomplex.COMPLEX_EQ_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X2)) @ ((cHOL4.complex.complex_add @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tcomplex.COMPLEX_ADD_RID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_ADD_LID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_NEGNEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ (cHOL4.complex.complex_neg @ X0))) @ X0)))) (Tcomplex.COMPLEX_NEG_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ X0)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_neg @ X1)))))))) (Tcomplex.COMPLEX_EQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ X0)) @ (cHOL4.complex.complex_neg @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tcomplex.COMPLEX_RNEG_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_neg @ X0)))))))) (Tcomplex.COMPLEX_LNEG_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_neg @ X1)))))))) (Tcomplex.COMPLEX_NEG_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_add @ X0) @ X1))) @ ((cHOL4.complex.complex_add @ (cHOL4.complex.complex_neg @ X0)) @ (cHOL4.complex.complex_neg @ X1)))))))) (Tcomplex.COMPLEX_MUL_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_MUL_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_NEG_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_mul @ X0) @ X1))) @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_neg @ X0)) @ X1))))))) (Tcomplex.COMPLEX_NEG_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_mul @ X0) @ X1))) @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.complex_neg @ X1)))))))) (Tcomplex.COMPLEX_NEG_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_neg @ X0)) @ (cHOL4.complex.complex_neg @ X1))) @ ((cHOL4.complex.complex_mul @ X0) @ X1))))))) (Tcomplex.COMPLEX_ENTIRE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))))))) (Tcomplex.COMPLEX_NEG_0,((cHOL4.min.= @ (cHOL4.complex.complex_neg @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) (Tcomplex.COMPLEX_NEG_EQ0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))) (Tcomplex.COMPLEX_SUB_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_SUB_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ X0)))) (Tcomplex.COMPLEX_SUB_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.complex.complex_neg @ X0))))) (Tcomplex.COMPLEX_SUB_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ (cHOL4.complex.complex_neg @ X0)) @ X1)) @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_add @ X0) @ X1)))))))) (Tcomplex.COMPLEX_SUB_NEG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ (cHOL4.complex.complex_neg @ X0)) @ (cHOL4.complex.complex_neg @ X1))) @ ((cHOL4.complex.complex_sub @ X1) @ X0))))))) (Tcomplex.COMPLEX_NEG_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ ((cHOL4.complex.complex_sub @ X1) @ X0))))))) (Tcomplex.COMPLEX_SUB_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ (cHOL4.complex.complex_neg @ X1))) @ ((cHOL4.complex.complex_add @ X0) @ X1))))))) (Tcomplex.COMPLEX_SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ X1)) @ X0)))))) (Tcomplex.COMPLEX_SUB_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X1) @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ X0)))))) (Tcomplex.COMPLEX_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ X0)) @ X1)))))) (Tcomplex.COMPLEX_SUB_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ X0)) @ (cHOL4.complex.complex_neg @ X1))))))) (Tcomplex.COMPLEX_SUB_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ X1)))))) (Tcomplex.COMPLEX_ADD_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ ((cHOL4.complex.complex_add @ X0) @ X1))) @ (cHOL4.complex.complex_neg @ X1))))))) (Tcomplex.COMPLEX_ADD2_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ ((cHOL4.complex.complex_add @ X2) @ X3))) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_sub @ X0) @ X2)) @ ((cHOL4.complex.complex_sub @ X1) @ X3)))))))))))) (Tcomplex.COMPLEX_SUB_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ ((cHOL4.complex.complex_sub @ X1) @ X2))) @ ((cHOL4.complex.complex_sub @ X0) @ X2))))))))) (Tcomplex.COMPLEX_SUB_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tcomplex.COMPLEX_EQ_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.complex.complex_sub @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X2)) @ X1))))))))) (Tcomplex.COMPLEX_EQ_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.complex.complex_add @ X2) @ X1)))))))))) (Tcomplex.COMPLEX_MUL_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.complex_neg @ X1))) @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_mul @ X0) @ X1)))))))) (Tcomplex.COMPLEX_MUL_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_neg @ X0)) @ X1)) @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_mul @ X0) @ X1)))))))) (Tcomplex.COMPLEX_SUB_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ ((cHOL4.complex.complex_sub @ X1) @ X2))) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ X2)))))))))) (Tcomplex.COMPLEX_SUB_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_mul @ X0) @ X2)) @ ((cHOL4.complex.complex_mul @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_DIFFSQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_mul @ X0) @ X0)) @ ((cHOL4.complex.complex_mul @ X1) @ X1)))))))) (Tcomplex.COMPLEX_EQ_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_EQ_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X2)) @ ((cHOL4.complex.complex_mul @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Tcomplex.COMPLEX_EQ_LMUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ X2))))))))))) (Tcomplex.COMPLEX_EQ_RMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X1) @ X0)) @ ((cHOL4.complex.complex_mul @ X2) @ X0)))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tcomplex.COMPLEX_EQ_LMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ X2)))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tcomplex.COMPLEX_NEG_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.complex_neg @ (cHOL4.complex.complex_inv @ X0))))))) (Tcomplex.COMPLEX_INV_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ ((cHOL4.complex.complex_mul @ X0) @ X1))) @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_inv @ X0)) @ (cHOL4.complex.complex_inv @ X1))))))))) (Tcomplex.COMPLEX_INVINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_inv @ X0))) @ X0))))) (Tcomplex.COMPLEX_LINV_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_inv @ X1)))))))) (Tcomplex.COMPLEX_RINV_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_inv @ X0)))))))) (Tcomplex.COMPLEX_INV_0,((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) (Tcomplex.COMPLEX_INV1,((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tcomplex.COMPLEX_INV_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_inv @ X0))) @ X0)))) (Tcomplex.COMPLEX_INV_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.complex_neg @ (cHOL4.complex.complex_inv @ X0)))))) (Tcomplex.COMPLEX_INV_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))) (Tcomplex.COMPLEX_INV_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))))) (Tcomplex.COMPLEX_INV_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ X0)) @ (cHOL4.complex.complex_inv @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tcomplex.COMPLEX_NEG_LDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_div @ X0) @ X1))) @ ((cHOL4.complex.complex_div @ (cHOL4.complex.complex_neg @ X0)) @ X1))))))) (Tcomplex.COMPLEX_NEG_RDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_div @ X0) @ X1))) @ ((cHOL4.complex.complex_div @ X0) @ (cHOL4.complex.complex_neg @ X1)))))))) (Tcomplex.COMPLEX_NEG_DIV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ (cHOL4.complex.complex_neg @ X0)) @ (cHOL4.complex.complex_neg @ X1))) @ ((cHOL4.complex.complex_div @ X0) @ X1))))))) (Tcomplex.COMPLEX_INV_1OVER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ X0)) @ ((cHOL4.complex.complex_div @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Tcomplex.COMPLEX_DIV1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ X0) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tcomplex.COMPLEX_DIV_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_div @ X0) @ X2)) @ ((cHOL4.complex.complex_div @ X1) @ X2))) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_add @ X0) @ X1)) @ X2))))))))) (Tcomplex.COMPLEX_DIV_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_div @ X0) @ X2)) @ ((cHOL4.complex.complex_div @ X1) @ X2))) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_sub @ X0) @ X1)) @ X2))))))))) (Tcomplex.COMPLEX_DIV_RMUL_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_mul @ X1) @ X0)) @ ((cHOL4.complex.complex_mul @ X2) @ X0))) @ ((cHOL4.complex.complex_div @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_DIV_LMUL_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X0) @ X2))) @ ((cHOL4.complex.complex_div @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_DIV_DENOM_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_div @ X1) @ X0)) @ ((cHOL4.complex.complex_div @ X2) @ X0))) @ ((cHOL4.complex.complex_div @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_DIV_INNER_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_div @ X1) @ X0)) @ ((cHOL4.complex.complex_div @ X0) @ X2))) @ ((cHOL4.complex.complex_div @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_DIV_OUTER_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_div @ X0) @ X1)) @ ((cHOL4.complex.complex_div @ X2) @ X0))) @ ((cHOL4.complex.complex_div @ X2) @ X1)))))))))) (Tcomplex.COMPLEX_DIV_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ X2) @ X1)) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_mul @ X0) @ X2)) @ ((cHOL4.complex.complex_mul @ X0) @ X1))))))))))) (Tcomplex.COMPLEX_ADD_RAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_div @ X0) @ X1)) @ ((cHOL4.complex.complex_div @ X2) @ X3))) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_mul @ X0) @ X3)) @ ((cHOL4.complex.complex_mul @ X1) @ X2))) @ ((cHOL4.complex.complex_mul @ X1) @ X3))))))))))))) (Tcomplex.COMPLEX_SUB_RAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_div @ X0) @ X1)) @ ((cHOL4.complex.complex_div @ X2) @ X3))) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_mul @ X0) @ X3)) @ ((cHOL4.complex.complex_mul @ X1) @ X2))) @ ((cHOL4.complex.complex_mul @ X1) @ X3))))))))))))) (Tcomplex.COMPLEX_DIV_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_DIV_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ X0) @ X0)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_SUB_INV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ (cHOL4.complex.complex_inv @ X0)) @ (cHOL4.complex.complex_inv @ X1))) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_sub @ X1) @ X0)) @ ((cHOL4.complex.complex_mul @ X0) @ X1))))))))) (Tcomplex.COMPLEX_EQ_RDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.complex.complex_div @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ X2)) @ X1)))))))))) (Tcomplex.COMPLEX_EQ_LDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ X0) @ X2)) @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.complex.complex_mul @ X1) @ X2))))))))))) (Tcomplex.COMPLEX_OF_REAL_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_of_real @ X0)) @ (cHOL4.complex.complex_of_real @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tcomplex.COMPLEX_OF_REAL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ (cHOL4.complex.complex_of_real @ X0)) @ (cHOL4.complex.complex_of_real @ X1))) @ (cHOL4.complex.complex_of_real @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Tcomplex.COMPLEX_OF_REAL_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ (cHOL4.complex.complex_of_real @ X0))) @ (cHOL4.complex.complex_of_real @ (cHOL4.realax.real_neg @ X0)))))) (Tcomplex.COMPLEX_OF_REAL_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_of_real @ X0)) @ (cHOL4.complex.complex_of_real @ X1))) @ (cHOL4.complex.complex_of_real @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Tcomplex.COMPLEX_OF_REAL_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_of_real @ X0))) @ (cHOL4.complex.complex_of_real @ (cHOL4.realax.inv @ X0)))))) (Tcomplex.COMPLEX_OF_REAL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_sub @ (cHOL4.complex.complex_of_real @ X0)) @ (cHOL4.complex.complex_of_real @ X1))) @ (cHOL4.complex.complex_of_real @ ((cHOL4.real.real_sub @ X0) @ X1)))))))) (Tcomplex.COMPLEX_OF_REAL_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ (cHOL4.complex.complex_of_real @ X0)) @ (cHOL4.complex.complex_of_real @ X1))) @ (cHOL4.complex.complex_of_real @ ((cHOL4.real./ @ X0) @ X1)))))))) (Tcomplex.COMPLEX_OF_NUM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.complex_of_num @ X0)) @ (cHOL4.complex.complex_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tcomplex.COMPLEX_OF_NUM_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ (cHOL4.complex.complex_of_num @ X0)) @ (cHOL4.complex.complex_of_num @ X1))) @ (cHOL4.complex.complex_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) (Tcomplex.COMPLEX_OF_NUM_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_of_num @ X0)) @ (cHOL4.complex.complex_of_num @ X1))) @ (cHOL4.complex.complex_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Tcomplex.COMPLEX_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X2))) @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ X2))))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1))) @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.realax.real_neg @ X0)) @ X1))))))) (Tcomplex.COMPLEX_NEG_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ (cHOL4.complex.complex_neg @ X1))) @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.realax.real_neg @ X0)) @ X1))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)) @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)) @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_ADD_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ ((cHOL4.complex.complex_add @ X1) @ X2))) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)))))))))) (Tcomplex.COMPLEX_SUB_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ ((cHOL4.complex.complex_sub @ X1) @ X2))) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)))))))))) (Tcomplex.COMPLEX_MUL_SCALAR_LMUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)) @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X3))) @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.complex.complex_mul @ X2) @ X3)))))))))))) (Tcomplex.COMPLEX_LMUL_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ ((cHOL4.complex.complex_mul @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_RMUL_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X1) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2))) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ ((cHOL4.complex.complex_mul @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_ZERO_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_SCALAR_LMUL_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (Tcomplex.COMPLEX_SCALAR_LMUL_NEG1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.complex.complex_neg @ X0))))) (Tcomplex.COMPLEX_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_add @ X0) @ X0)) @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Tcomplex.COMPLEX_SCALAR_LMUL_ENTIRE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))))))) (Tcomplex.COMPLEX_EQ_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)) @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X2) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_EQ1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))))))) (Tcomplex.COMPLEX_INV_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1))) @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.realax.inv @ X0)) @ (cHOL4.complex.complex_inv @ X1))))))))) (Tcomplex.COMPLEX_SCALAR_LMUL_DIV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X2)) @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X3))) @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.real./ @ X0) @ X1)) @ ((cHOL4.complex.complex_div @ X2) @ X3))))))))))))) (Tcomplex.COMPLEX_SCALAR_MUL_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1)) @ ((cHOL4.complex.complex_scalar_rmul @ X1) @ X0))))))) (Tcomplex.COMPLEX_SCALAR_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X0)) @ X1)) @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))))) (Tcomplex.COMPLEX_SCALAR_RMUL_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_neg @ ((cHOL4.complex.complex_scalar_rmul @ X1) @ X0))) @ ((cHOL4.complex.complex_scalar_rmul @ X1) @ (cHOL4.realax.real_neg @ X0)))))))) (Tcomplex.COMPLEX_NEG_SCALAR_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ (cHOL4.complex.complex_neg @ X1)) @ X0)) @ ((cHOL4.complex.complex_scalar_rmul @ X1) @ (cHOL4.realax.real_neg @ X0)))))))) (Tcomplex.COMPLEX_SCALAR_RMUL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X0)) @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X1)))))))))) (Tcomplex.COMPLEX_RSCALAR_RMUL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ ((cHOL4.real.real_sub @ X0) @ X1))) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X0)) @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X1)))))))))) (Tcomplex.COMPLEX_ADD_RSCALAR_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ ((cHOL4.complex.complex_add @ X1) @ X2)) @ X0)) @ ((cHOL4.complex.complex_add @ ((cHOL4.complex.complex_scalar_rmul @ X1) @ X0)) @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X0)))))))))) (Tcomplex.COMPLEX_SUB_SCALAR_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ ((cHOL4.complex.complex_sub @ X1) @ X2)) @ X0)) @ ((cHOL4.complex.complex_sub @ ((cHOL4.complex.complex_scalar_rmul @ X1) @ X0)) @ ((cHOL4.complex.complex_scalar_rmul @ X2) @ X0)))))))))) (Tcomplex.COMPLEX_SCALAR_RMUL_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_ZERO_SCALAR_RMUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_SCALAR_RMUL_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tcomplex.COMPLEX_SCALAR_RMUL_NEG1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_rmul @ X0) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.complex.complex_neg @ X0))))) (Tcomplex.CONJ_REAL_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.conj @ (cHOL4.complex.complex_of_real @ X0))) @ (cHOL4.complex.complex_of_real @ X0))))) (Tcomplex.CONJ_NUM_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.conj @ (cHOL4.complex.complex_of_num @ X0))) @ (cHOL4.complex.complex_of_num @ X0))))) (Tcomplex.CONJ_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.conj @ ((cHOL4.complex.complex_add @ X0) @ X1))) @ ((cHOL4.complex.complex_add @ (cHOL4.complex.conj @ X0)) @ (cHOL4.complex.conj @ X1)))))))) (Tcomplex.CONJ_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.conj @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.complex_neg @ (cHOL4.complex.conj @ X0)))))) (Tcomplex.CONJ_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.conj @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ ((cHOL4.complex.complex_sub @ (cHOL4.complex.conj @ X0)) @ (cHOL4.complex.conj @ X1)))))))) (Tcomplex.CONJ_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.conj @ ((cHOL4.complex.complex_mul @ X0) @ X1))) @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.conj @ X0)) @ (cHOL4.complex.conj @ X1)))))))) (Tcomplex.CONJ_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.conj @ (cHOL4.complex.complex_inv @ X0))) @ (cHOL4.complex.complex_inv @ (cHOL4.complex.conj @ X0)))))) (Tcomplex.CONJ_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.conj @ ((cHOL4.complex.complex_div @ X0) @ X1))) @ ((cHOL4.complex.complex_div @ (cHOL4.complex.conj @ X0)) @ (cHOL4.complex.conj @ X1)))))))) (Tcomplex.CONJ_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.conj @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1))) @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ (cHOL4.complex.conj @ X1)))))))) (Tcomplex.CONJ_CONJ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.conj @ (cHOL4.complex.conj @ X0))) @ X0)))) (Tcomplex.CONJ_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.conj @ X0)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.conj @ X1)))))))) (Tcomplex.CONJ_EQ2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.complex.conj @ X0)) @ (cHOL4.complex.conj @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tcomplex.COMPLEX_MUL_RCONJ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.conj @ X0)) @ X0)) @ (cHOL4.complex.complex_of_real @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.complex.RE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.complex.IM @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Tcomplex.CONJ_ZERO,((cHOL4.min.= @ (cHOL4.complex.conj @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) (Tcomplex.MODU_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.complex.modu @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.complex.RE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.complex.IM @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Tcomplex.RE_IM_LE_MODU,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.complex.RE @ X0))) @ (cHOL4.complex.modu @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.complex.IM @ X0))) @ (cHOL4.complex.modu @ X0)))))) (Tcomplex.MODU_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.complex.modu @ X0))))) (Tcomplex.COMPLEX_MUL_RCONJ1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ X0) @ (cHOL4.complex.conj @ X0))) @ (cHOL4.complex.complex_of_real @ ((cHOL4.real.pow @ (cHOL4.complex.modu @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_MUL_LCONJ1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.conj @ X0)) @ X0)) @ (cHOL4.complex.complex_of_real @ ((cHOL4.real.pow @ (cHOL4.complex.modu @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Tcomplex.MODU_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.modu @ X0))))) (Tcomplex.MODU_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.modu @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ (cHOL4.complex.modu @ ((cHOL4.complex.complex_sub @ X1) @ X0)))))))) (Tcomplex.MODU_CONJ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.conj @ X0))) @ (cHOL4.complex.modu @ X0))))) (Tcomplex.MODU_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.modu @ ((cHOL4.complex.complex_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.complex.modu @ X0)) @ (cHOL4.complex.modu @ X1)))))))) (Tcomplex.MODU_0,((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Tcomplex.MODU_1,((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tcomplex.MODU_COMPLEX_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.complex_inv @ X0))) @ (cHOL4.realax.inv @ (cHOL4.complex.modu @ X0))))))) (Tcomplex.MODU_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.complex.modu @ ((cHOL4.complex.complex_div @ X0) @ X1))) @ ((cHOL4.real./ @ (cHOL4.complex.modu @ X0)) @ (cHOL4.complex.modu @ X1))))))))) (Tcomplex.MODU_SCALAR_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.modu @ ((cHOL4.complex.complex_scalar_lmul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.abs @ X0)) @ (cHOL4.complex.modu @ X1)))))))) (Tcomplex.MODU_REAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.complex_of_real @ X0))) @ (cHOL4.real.abs @ X0))))) (Tcomplex.MODU_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.modu @ (cHOL4.complex.complex_of_num @ X0))) @ (cHOL4.real.real_of_num @ X0))))) (Tcomplex.MODU_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.complex.modu @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tcomplex.MODU_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.complex.modu @ X0)))))) (Tcomplex.MODU_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.complex.modu @ X0)))))) (Tcomplex.RE_DIV_MODU_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0)))) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tcomplex.IM_DIV_MODU_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0)))) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tcomplex.RE_DIV_MODU_ACS_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.acs @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0))))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.acs @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0)))) @ cHOL4.transc.pi)))))) (Tcomplex.IM_DIV_MODU_ASN_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.transc.asn @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0))))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.asn @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0)))) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Tcomplex.RE_DIV_MODU_ACS_COS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.transc.acs @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0))))) @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0))))))) (Tcomplex.IM_DIV_MODU_ASN_SIN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.transc.asn @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0))))) @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0))))))) (Tcomplex.ARG_COS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.complex.arg @ X0))) @ ((cHOL4.real./ @ (cHOL4.complex.RE @ X0)) @ (cHOL4.complex.modu @ X0))))))) (Tcomplex.ARG_SIN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.complex.arg @ X0))) @ ((cHOL4.real./ @ (cHOL4.complex.IM @ X0)) @ (cHOL4.complex.modu @ X0))))))) (Tcomplex.RE_MODU_ARG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.RE @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.complex.modu @ X0)) @ (cHOL4.transc.cos @ (cHOL4.complex.arg @ X0))))))) (Tcomplex.IM_MODU_ARG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.IM @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.complex.modu @ X0)) @ (cHOL4.transc.sin @ (cHOL4.complex.arg @ X0))))))) (Tcomplex.COMPLEX_TRIANGLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.complex.modu @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ (cHOL4.complex.arg @ X0))) @ (cHOL4.transc.sin @ (cHOL4.complex.arg @ X0))))) @ X0)))) (Tcomplex.COMPLEX_MODU_ARG_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.complex.modu @ X0)) @ (cHOL4.complex.modu @ X1))) @ ((cHOL4.min.= @ (cHOL4.complex.arg @ X0)) @ (cHOL4.complex.arg @ X1))))))))) (Tcomplex.MODU_UNIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.modu @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tcomplex.COMPLEX_MUL_ARG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X0))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X1)) @ (cHOL4.transc.sin @ X1)))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ ((cHOL4.realax.real_add @ X0) @ X1))) @ (cHOL4.transc.sin @ ((cHOL4.realax.real_add @ X0) @ X1))))))))) (Tcomplex.COMPLEX_INV_ARG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X0)))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.transc.sin @ (cHOL4.realax.real_neg @ X0))))))) (Tcomplex.COMPLEX_DIV_ARG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_div @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X0))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X1)) @ (cHOL4.transc.sin @ X1)))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ ((cHOL4.real.real_sub @ X0) @ X1))) @ (cHOL4.transc.sin @ ((cHOL4.real.real_sub @ X0) @ X1))))))))) (Tcomplex.complex_pow_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ cHOL4.num.0)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.complex.complex_mul @ X0) @ ((cHOL4.complex.complex_pow @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ ((cHOL4.complex.complex_mul @ X0) @ ((cHOL4.complex.complex_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))))))))) (Tcomplex.COMPLEX_POW_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))) (Tcomplex.COMPLEX_POW_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ X1)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))))))))) (Tcomplex.COMPLEX_POWINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_inv @ ((cHOL4.complex.complex_pow @ X0) @ X1))) @ ((cHOL4.complex.complex_pow @ (cHOL4.complex.complex_inv @ X0)) @ X1)))))))) (Tcomplex.MODU_COMPLEX_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.modu @ ((cHOL4.complex.complex_pow @ X0) @ X1))) @ ((cHOL4.real.pow @ (cHOL4.complex.modu @ X0)) @ X1))))))) (Tcomplex.COMPLEX_POW_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_pow @ X0) @ X1)) @ ((cHOL4.complex.complex_pow @ X0) @ X2)))))))))) (Tcomplex.COMPLEX_POW_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Tcomplex.COMPLEX_POW_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.complex.complex_mul @ X0) @ X0))))) (Tcomplex.COMPLEX_POW_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tcomplex.COMPLEX_POW_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ ((cHOL4.complex.complex_mul @ X1) @ X2)) @ X0)) @ ((cHOL4.complex.complex_mul @ ((cHOL4.complex.complex_pow @ X1) @ X0)) @ ((cHOL4.complex.complex_pow @ X2) @ X0)))))))))) (Tcomplex.COMPLEX_POW_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ (cHOL4.complex.complex_inv @ X0)) @ X1)) @ (cHOL4.complex.complex_inv @ ((cHOL4.complex.complex_pow @ X0) @ X1)))))))) (Tcomplex.COMPLEX_POW_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ ((cHOL4.complex.complex_div @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_div @ ((cHOL4.complex.complex_pow @ X0) @ X2)) @ ((cHOL4.complex.complex_pow @ X1) @ X2)))))))))) (Tcomplex.COMPLEX_POW_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ ((cHOL4.complex.complex_scalar_lmul @ X1) @ X2)) @ X0)) @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.real.pow @ X1) @ X0)) @ ((cHOL4.complex.complex_pow @ X2) @ X0)))))))))) (Tcomplex.COMPLEX_POW_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X1) @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_POW_ZERO_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ X1) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))))) (Tcomplex.COMPLEX_POW_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ ((cHOL4.complex.complex_pow @ X0) @ X1)) @ X2)) @ ((cHOL4.complex.complex_pow @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tcomplex.DE_MOIVRE_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X0))) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ X0))) @ (cHOL4.transc.sin @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ X0))))))))) (Tcomplex.DE_MOIVRE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_pow @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.complex.modu @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ (cHOL4.complex.arg @ X0))) @ (cHOL4.transc.sin @ (cHOL4.complex.arg @ X0))))) @ X1)) @ ((cHOL4.complex.complex_scalar_lmul @ ((cHOL4.real.pow @ (cHOL4.complex.modu @ X0)) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ (cHOL4.complex.arg @ X0)))) @ (cHOL4.transc.sin @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ (cHOL4.complex.arg @ X0))))))))))) (Tcomplex.EXP_IMAGINARY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_scalar_rmul @ cHOL4.complex.i) @ X0))) @ ((cHOL4.pair.|comma| @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X0)))))) (Tcomplex.EULER_FORMULE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.complex.modu @ X0)) @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_scalar_rmul @ cHOL4.complex.i) @ (cHOL4.complex.arg @ X0))))) @ X0)))) (Tcomplex.COMPLEX_EXP_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_add @ X0) @ X1))) @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_exp @ X0)) @ (cHOL4.complex.complex_exp @ X1)))))))) (Tcomplex.COMPLEX_EXP_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.complex_inv @ (cHOL4.complex.complex_exp @ X0)))))) (Tcomplex.COMPLEX_EXP_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_sub @ X0) @ X1))) @ ((cHOL4.complex.complex_div @ (cHOL4.complex.complex_exp @ X0)) @ (cHOL4.complex.complex_exp @ X1)))))))) (Tcomplex.COMPLEX_EXP_N,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_scalar_lmul @ (cHOL4.real.real_of_num @ X1)) @ X0))) @ ((cHOL4.complex.complex_pow @ (cHOL4.complex.complex_exp @ X0)) @ X1))))))) (Tcomplex.COMPLEX_EXP_N2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_of_num @ X1)) @ X0))) @ ((cHOL4.complex.complex_pow @ (cHOL4.complex.complex_exp @ X0)) @ X1))))))) (Tcomplex.COMPLEX_EXP_0,((cHOL4.min.= @ (cHOL4.complex.complex_exp @ (cHOL4.complex.complex_of_num @ cHOL4.num.0))) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tcomplex.COMPLEX_EXP_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.complex.complex_exp @ X0)) @ (cHOL4.complex.complex_of_num @ cHOL4.num.0)))))) (Tcomplex.COMPLEX_EXP_ADD_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_exp @ ((cHOL4.complex.complex_add @ X0) @ X1))) @ (cHOL4.complex.complex_exp @ (cHOL4.complex.complex_neg @ X0)))) @ (cHOL4.complex.complex_exp @ X1))))))) (Tcomplex.COMPLEX_EXP_NEG_MUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_exp @ X0)) @ (cHOL4.complex.complex_exp @ (cHOL4.complex.complex_neg @ X0)))) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tcomplex.COMPLEX_EXP_NEG_MUL2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.complex.complex_mul @ (cHOL4.complex.complex_exp @ (cHOL4.complex.complex_neg @ X0))) @ (cHOL4.complex.complex_exp @ X0))) @ (cHOL4.complex.complex_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (TConseqConv.ASM_MARKER_DEF,((cHOL4.min.= @ cHOL4.ConseqConv.ASM_MARKER) @ (^[X0]: (^[X1]: X1)))) (TConseqConv.forall_eq_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ (X0 @ X2))))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2)))))))))) (TConseqConv.exists_eq_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ (X0 @ X2))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))))))))) (TConseqConv.true_imp,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ X0) @ cHOL4.bool.T)))) (TConseqConv.false_imp,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ cHOL4.bool.F) @ X0)))) (TConseqConv.NOT_CLAUSES_X,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X0)))) (TConseqConv.NOT_CLAUSES_T,((cHOL4.min.= @ (cHOL4.bool.~ @ cHOL4.bool.T)) @ cHOL4.bool.F)) (TConseqConv.NOT_CLAUSES_F,((cHOL4.min.= @ (cHOL4.bool.~ @ cHOL4.bool.F)) @ cHOL4.bool.T)) (TConseqConv.IMP_CONG_conj_strengthen,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ ((cHOL4.min.==> @ X1) @ X0))) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.==> @ X3) @ X2)))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X1) @ X3)) @ ((cHOL4.bool./\ @ X0) @ X2)))))))))))) (TConseqConv.IMP_CONG_conj_weaken,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ ((cHOL4.min.==> @ X0) @ X1))) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.==> @ X2) @ X3)))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X2)) @ ((cHOL4.bool./\ @ X1) @ X3)))))))))))) (TConseqConv.AND_CLAUSES_TX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ X0)) @ X0)))) (TConseqConv.AND_CLAUSES_XT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.T)) @ X0)))) (TConseqConv.AND_CLAUSES_FX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.F) @ X0)) @ cHOL4.bool.F)))) (TConseqConv.AND_CLAUSES_XF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.F)) @ cHOL4.bool.F)))) (TConseqConv.AND_CLAUSES_XX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X0)) @ X0)))) (TConseqConv.IMP_CONG_disj_strengthen,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.==> @ X1) @ X0))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.==> @ X3) @ X2)))) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X1) @ X3)) @ ((cHOL4.bool.\/ @ X0) @ X2)))))))))))) (TConseqConv.IMP_CONG_disj_weaken,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.==> @ X0) @ X1))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.==> @ X2) @ X3)))) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X0) @ X2)) @ ((cHOL4.bool.\/ @ X1) @ X3)))))))))))) (TConseqConv.OR_CLAUSES_TX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.T) @ X0)) @ cHOL4.bool.T)))) (TConseqConv.OR_CLAUSES_XT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ cHOL4.bool.T)) @ cHOL4.bool.T)))) (TConseqConv.OR_CLAUSES_FX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.F) @ X0)) @ X0)))) (TConseqConv.OR_CLAUSES_XF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ cHOL4.bool.F)) @ X0)))) (TConseqConv.OR_CLAUSES_XX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ X0)) @ X0)))) (TConseqConv.IMP_CONG_imp_strengthen,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X3) @ X2))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X3)) @ ((cHOL4.min.==> @ X0) @ X1)))) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X3)) @ ((cHOL4.min.==> @ X0) @ X2)))))))))))) (TConseqConv.IMP_CONG_imp_weaken,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X2) @ X3))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X3)) @ ((cHOL4.min.==> @ X1) @ X0)))) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ X1) @ X3)))))))))))) (TConseqConv.IMP_CONG_simple_imp_strengthen,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.==> @ X3) @ X2)))) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X3)) @ ((cHOL4.min.==> @ X0) @ X2)))))))))))) (TConseqConv.IMP_CONG_simple_imp_weaken,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X1) @ X0)) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.==> @ X2) @ X3)))) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ X1) @ X3)))))))))))) (TConseqConv.IMP_CLAUSES_TX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ cHOL4.bool.T) @ X0)) @ X0)))) (TConseqConv.IMP_CLAUSES_XT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.T)) @ cHOL4.bool.T)))) (TConseqConv.IMP_CLAUSES_FX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ cHOL4.bool.F) @ X0)) @ cHOL4.bool.T)))) (TConseqConv.IMP_CLAUSES_XX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ X0)) @ cHOL4.bool.T)))) (TConseqConv.IMP_CLAUSES_XF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.F)) @ (cHOL4.bool.~ @ X0))))) (TConseqConv.IMP_CONG_cond_simple,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ X1)) @ ((cHOL4.min.==> @ X4) @ X3))) @ ((cHOL4.min.==> @ (((cHOL4.bool.COND @ X0) @ X2) @ X4)) @ (((cHOL4.bool.COND @ X0) @ X1) @ X3)))))))))))))) (TConseqConv.IMP_CONG_cond,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X2) @ X1))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.min.==> @ X4) @ X3)))) @ ((cHOL4.min.==> @ (((cHOL4.bool.COND @ X0) @ X2) @ X4)) @ (((cHOL4.bool.COND @ X0) @ X1) @ X3)))))))))))))) (TConseqConv.COND_CLAUSES_CT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.T) @ X0) @ X1)) @ X0)))))) (TConseqConv.COND_CLAUSES_CF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.F) @ X0) @ X1)) @ X1)))))) (TConseqConv.COND_CLAUSES_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ X1)) @ X1)))))) (TConseqConv.COND_CLAUSES_TT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ cHOL4.bool.T) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ X1))))))) (TConseqConv.COND_CLAUSES_FT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ cHOL4.bool.T)) @ ((cHOL4.min.==> @ X0) @ X1))))))) (TConseqConv.COND_CLAUSES_TF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ cHOL4.bool.F) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ X1))))))) (TConseqConv.COND_CLAUSES_FF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ X1) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ X0) @ X1))))))) (TConseqConv.ASM_MARKER_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ConseqConv.ASM_MARKER @ X0) @ X1)) @ X1)))))) (Tcontainer.LIST_TO_BAG_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.container.LIST_TO_BAG @ cHOL4.list.NIL)) @ cHOL4.bag.EMPTY_BAG)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.container.LIST_TO_BAG @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.bag.BAG_INSERT @ X0) @ (cHOL4.container.LIST_TO_BAG @ X1))))))))) (Tcontainer.BAG_TO_LIST_primitive_def,((cHOL4.min.= @ cHOL4.container.BAG_TO_LIST) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG)))) @ ((X0 @ (cHOL4.bag.BAG_REST @ X1)) @ X1)))))))) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ (cHOL4.bag.FINITE_BAG @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ (cHOL4.bag.BAG_CHOICE @ X1)) @ (X2 @ (cHOL4.bag.BAG_REST @ X1))))) @ cHOL4.bool.ARB))))))) (Tcontainer.BAG_OF_FMAP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.container.BAG_OF_FMAP @ X0) @ X1)) @ (^[X2]: (cHOL4.pred_set.CARD @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ X2) @ ((X0 @ X3) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3))))))))))))) (Tcontainer.SET_TO_LIST_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.SET_TO_LIST @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ (cHOL4.pred_set.CHOICE @ X0)) @ (cHOL4.list.SET_TO_LIST @ (cHOL4.pred_set.REST @ X0))))))))) (Tcontainer.SET_TO_LIST_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))) @ (X0 @ (cHOL4.pred_set.REST @ X1)))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tcontainer.LIST_TO_SET_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ cHOL4.list.NIL)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.pred_set.INSERT @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))))))))) (Tcontainer.SET_TO_LIST_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.SET_TO_LIST @ X0))) @ X0))))) (Tcontainer.SET_TO_LIST_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.SET_TO_LIST @ X0))) @ (cHOL4.pred_set.CARD @ X0)))))) (Tcontainer.SET_TO_LIST_IN_MEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.SET_TO_LIST @ X0)))))))))) (Tcontainer.MEM_SET_TO_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.SET_TO_LIST @ X0)))) @ ((cHOL4.bool.IN @ X1) @ X0)))))))) (Tcontainer.SET_TO_LIST_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SET_TO_LIST @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))) (Tcontainer.UNION_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X0)) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X0) @ X1)))))))) (Tcontainer.LIST_TO_SET_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X0)) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tcontainer.FINITE_LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.list.LIST_TO_SET @ X0))))) (Tcontainer.BAG_TO_LIST_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ (cHOL4.container.BAG_TO_LIST @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ (cHOL4.bag.BAG_CHOICE @ X0)) @ (cHOL4.container.BAG_TO_LIST @ (cHOL4.bag.BAG_REST @ X0))))))))) (Tcontainer.BAG_TO_LIST_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.bag.EMPTY_BAG)))) @ (X0 @ (cHOL4.bag.BAG_REST @ X1)))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tcontainer.BAG_TO_LIST_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ (cHOL4.container.LIST_TO_BAG @ (cHOL4.container.BAG_TO_LIST @ X0))) @ X0))))) (Tcontainer.BAG_TO_LIST_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.container.BAG_TO_LIST @ X0))) @ (cHOL4.bag.BAG_CARD @ X0)))))) (Tcontainer.BAG_IN_MEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.container.BAG_TO_LIST @ X0)))))))))) (Tcontainer.MEM_BAG_TO_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.container.BAG_TO_LIST @ X0)))) @ ((cHOL4.bag.BAG_IN @ X1) @ X0)))))))) (Tcontainer.FINITE_LIST_TO_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bag.FINITE_BAG @ (cHOL4.container.LIST_TO_BAG @ X0))))) (Tcontainer.EVERY_LIST_TO_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_EVERY @ X1) @ (cHOL4.container.LIST_TO_BAG @ X0))) @ ((cHOL4.list.EVERY @ X1) @ X0))))))) (Tcontainer.LIST_TO_BAG_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.container.LIST_TO_BAG @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.bag.BAG_UNION @ (cHOL4.container.LIST_TO_BAG @ X0)) @ (cHOL4.container.LIST_TO_BAG @ X1)))))))) (Tcontainer.IN_LIST_TO_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ (cHOL4.container.LIST_TO_BAG @ X1))) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tcontainer.LIST_TO_BAG_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.container.LIST_TO_BAG @ X0)) @ cHOL4.bag.EMPTY_BAG)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (Tcontainer.PERM_LIST_TO_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.container.LIST_TO_BAG @ X0)) @ (cHOL4.container.LIST_TO_BAG @ X1))) @ ((cHOL4.sorting.PERM @ X0) @ X1))))))) (Tcontainer.CARD_LIST_TO_BAG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bag.BAG_CARD @ (cHOL4.container.LIST_TO_BAG @ X0))) @ (cHOL4.list.LENGTH @ X0))))) (Tcontainer.BAG_TO_LIST_EQ_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bag.FINITE_BAG @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.list.NIL) @ (cHOL4.container.BAG_TO_LIST @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.container.BAG_TO_LIST @ X0)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.bag.EMPTY_BAG))))))) (Tcontainer.LIST_ELEM_COUNT_LIST_TO_BAG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X1) @ X0)) @ ((cHOL4.container.LIST_TO_BAG @ X0) @ X1))))))) (Tcontainer.BAG_OF_FMAP_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.container.BAG_OF_FMAP @ X0) @ cHOL4.finite_map.FEMPTY)) @ cHOL4.bag.EMPTY_BAG)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.container.BAG_OF_FMAP @ X1) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ ((cHOL4.bag.BAG_INSERT @ ((X1 @ X3) @ X4)) @ ((cHOL4.container.BAG_OF_FMAP @ X1) @ ((cHOL4.finite_map.\\ @ X2) @ X3)))))))))))))) (Tcontainer.BAG_IN_BAG_OF_FMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_IN @ X0) @ ((cHOL4.container.BAG_OF_FMAP @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ X0) @ ((X1 @ X3) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)))))))))))))) (Tcontainer.FINITE_BAG_OF_FMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bag.FINITE_BAG @ ((cHOL4.container.BAG_OF_FMAP @ X0) @ X1))))))) (TDecode.wf_decoder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (((cHOL4.bool.COND @ (X0 @ X2)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X1 @ X4)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X5)))) @ ((cHOL4.min.= @ X4) @ ((cHOL4.list.APPEND @ X3) @ X5)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X3)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X4))))))))))))))))) (TDecode.enc2dec_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Decode.enc2dec @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ (X1 @ X3)) @ X4)))))))) @ (cHOL4.option.SOME @ (cHOL4.min.|at| @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ (X1 @ X3)) @ X4))))))))) @ cHOL4.option.NONE))))))))) (TDecode.dec2enc_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.list.NIL))))))))))) (TDecode.decode_unit_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Decode.decode_unit @ X0)) @ ((cHOL4.Decode.enc2dec @ X0) @ cHOL4.Encode.encode_unit))))) (TDecode.decode_bool_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Decode.decode_bool @ X0)) @ ((cHOL4.Decode.enc2dec @ X0) @ cHOL4.Encode.encode_bool))))) (TDecode.decode_prod_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Decode.decode_prod @ X0) @ X1) @ X2)) @ ((cHOL4.Decode.enc2dec @ X0) @ ((cHOL4.Encode.encode_prod @ (cHOL4.Decode.dec2enc @ X1)) @ (cHOL4.Decode.dec2enc @ X2))))))))))) (TDecode.decode_sum_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Decode.decode_sum @ X0) @ X1) @ X2)) @ ((cHOL4.Decode.enc2dec @ X0) @ ((cHOL4.Encode.encode_sum @ (cHOL4.Decode.dec2enc @ X1)) @ (cHOL4.Decode.dec2enc @ X2))))))))))) (TDecode.decode_option_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_option @ X0) @ X1)) @ ((cHOL4.Decode.enc2dec @ X0) @ (cHOL4.Encode.encode_option @ (cHOL4.Decode.dec2enc @ X1))))))))) (TDecode.decode_list_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_list @ X0) @ X1)) @ ((cHOL4.Decode.enc2dec @ X0) @ (cHOL4.Encode.encode_list @ (cHOL4.Decode.dec2enc @ X1))))))))) (TDecode.decode_blist_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Decode.decode_blist @ X0) @ X1) @ X2)) @ ((cHOL4.Decode.enc2dec @ X0) @ ((cHOL4.Encode.encode_blist @ X1) @ (cHOL4.Decode.dec2enc @ X2))))))))))) (TDecode.decode_num_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Decode.decode_num @ X0)) @ ((cHOL4.Decode.enc2dec @ X0) @ cHOL4.Encode.encode_num))))) (TDecode.decode_bnum_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_bnum @ X0) @ X1)) @ ((cHOL4.Decode.enc2dec @ X1) @ (cHOL4.Encode.encode_bnum @ X0)))))))) (TDecode.dec_bnum_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ cHOL4.num.0) @ X0)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ (cHOL4.num.SUC @ X1)) @ X0)) @ (((cHOL4.list.list_CASE @ X0) @ cHOL4.option.NONE) @ (^[X2]: (^[X3]: (((cHOL4.option.option_CASE @ ((cHOL4.Decode.dec_bnum @ X1) @ X3)) @ cHOL4.option.NONE) @ (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X5)) @ (((cHOL4.bool.COND @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ X6))))))))))))))))) (TDecode.decode_tree_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_tree @ X0) @ X1)) @ ((cHOL4.Decode.enc2dec @ X0) @ (cHOL4.Encode.encode_tree @ (cHOL4.Decode.dec2enc @ X1))))))))) (TDecode.enc2dec_none,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.Decode.enc2dec @ X0) @ X1) @ X2)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X0 @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ (X1 @ X3)) @ X4)))))))))))))))) (TDecode.enc2dec_some,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.Decode.enc2dec @ X0) @ X1) @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ (X1 @ X3)) @ X4)))))))))))))))) (TDecode.enc2dec_some_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.Decode.enc2dec @ X0) @ X1) @ X2)) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.pair.FST @ X3))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ (X1 @ (cHOL4.pair.FST @ X3))) @ (cHOL4.pair.SND @ X3))))))))))))))) (TDecode.wf_enc2dec,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.Decode.wf_decoder @ X0) @ ((cHOL4.Decode.enc2dec @ X0) @ X1)))))))) (TDecode.dec2enc_some,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ X1) @ X2)) @ X3)) @ (X0 @ X2))) @ ((cHOL4.min.= @ (X1 @ X3)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.list.NIL)))))))))))))) (TDecode.decode_dec2enc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ (X1 @ ((cHOL4.Decode.dec2enc @ X1) @ X2))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.list.NIL))))))))))) (TDecode.decode_dec2enc_append,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ (X1 @ ((cHOL4.list.APPEND @ ((cHOL4.Decode.dec2enc @ X1) @ X2)) @ X3))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (TDecode.wf_dec2enc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.Encode.wf_encoder @ X0) @ (cHOL4.Decode.dec2enc @ X1)))))))) (TDecode.dec2enc_enc2dec,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ ((cHOL4.Decode.enc2dec @ X0) @ X1)) @ X2)) @ (X1 @ X2)))))))))) (TDecode.enc2dec_dec2enc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.Decode.enc2dec @ X0) @ (cHOL4.Decode.dec2enc @ X1))) @ X1))))))) (TDecode.wf_decode_unit,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Decode.wf_decoder @ X0) @ (cHOL4.Decode.decode_unit @ X0))))) (TDecode.dec2enc_decode_unit,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ (cHOL4.Decode.decode_unit @ X0)) @ X1)) @ (cHOL4.Encode.encode_unit @ X1)))))))) (TDecode.decode_unit,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_unit @ X0) @ X1)) @ (((cHOL4.bool.COND @ (X0 @ cHOL4.one.one)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.one.one) @ X1))) @ cHOL4.option.NONE))))))) (TDecode.wf_decode_bool,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Decode.wf_decoder @ X0) @ (cHOL4.Decode.decode_bool @ X0))))) (TDecode.dec2enc_decode_bool,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ (cHOL4.Decode.decode_bool @ X0)) @ X1)) @ (cHOL4.Encode.encode_bool @ X1)))))))) (TDecode.decode_bool,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_bool @ X0) @ X1)) @ (((cHOL4.list.list_CASE @ X1) @ cHOL4.option.NONE) @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ cHOL4.option.NONE)))))))))) (TDecode.wf_decode_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.Decode.wf_decoder @ X1) @ X3))) @ ((cHOL4.Decode.wf_decoder @ ((cHOL4.Encode.lift_prod @ X0) @ X1)) @ (((cHOL4.Decode.decode_prod @ ((cHOL4.Encode.lift_prod @ X0) @ X1)) @ X2) @ X3)))))))))))) (TDecode.dec2enc_decode_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X1) @ X3)) @ (((cHOL4.Encode.lift_prod @ X0) @ X1) @ X4)))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ (((cHOL4.Decode.decode_prod @ ((cHOL4.Encode.lift_prod @ X0) @ X1)) @ X2) @ X3)) @ X4)) @ (((cHOL4.Encode.encode_prod @ (cHOL4.Decode.dec2enc @ X2)) @ (cHOL4.Decode.dec2enc @ X3)) @ X4)))))))))))))) (TDecode.encode_then_decode_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X1) @ X3)) @ (((cHOL4.Encode.lift_prod @ X0) @ X1) @ X4)))) @ ((cHOL4.min.= @ ((((cHOL4.Decode.decode_prod @ ((cHOL4.Encode.lift_prod @ X0) @ X1)) @ ((cHOL4.Decode.enc2dec @ X0) @ X2)) @ ((cHOL4.Decode.enc2dec @ X1) @ X3)) @ ((cHOL4.list.APPEND @ (((cHOL4.Encode.encode_prod @ X2) @ X3) @ X4)) @ X5))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X4) @ X5))))))))))))))))) (TDecode.decode_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X1) @ X4)) @ ((cHOL4.Decode.wf_decoder @ X0) @ X3))) @ ((cHOL4.min.= @ ((((cHOL4.Decode.decode_prod @ ((cHOL4.Encode.lift_prod @ X1) @ X0)) @ X4) @ X3) @ X2)) @ (((cHOL4.option.option_CASE @ (X4 @ X2)) @ cHOL4.option.NONE) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: (((cHOL4.option.option_CASE @ (X3 @ X7)) @ cHOL4.option.NONE) @ (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X6) @ X9)) @ X10))))))))))))))))))))))))) (TDecode.wf_decode_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.Decode.wf_decoder @ X1) @ X3))) @ ((cHOL4.Decode.wf_decoder @ ((cHOL4.Encode.lift_sum @ X0) @ X1)) @ (((cHOL4.Decode.decode_sum @ ((cHOL4.Encode.lift_sum @ X0) @ X1)) @ X2) @ X3)))))))))))) (TDecode.dec2enc_decode_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X1) @ X3)) @ (((cHOL4.Encode.lift_sum @ X0) @ X1) @ X4)))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ (((cHOL4.Decode.decode_sum @ ((cHOL4.Encode.lift_sum @ X0) @ X1)) @ X2) @ X3)) @ X4)) @ (((cHOL4.Encode.encode_sum @ (cHOL4.Decode.dec2enc @ X2)) @ (cHOL4.Decode.dec2enc @ X3)) @ X4)))))))))))))) (TDecode.encode_then_decode_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X1) @ X3)) @ (((cHOL4.Encode.lift_sum @ X0) @ X1) @ X4)))) @ ((cHOL4.min.= @ ((((cHOL4.Decode.decode_sum @ ((cHOL4.Encode.lift_sum @ X0) @ X1)) @ ((cHOL4.Decode.enc2dec @ X0) @ X2)) @ ((cHOL4.Decode.enc2dec @ X1) @ X3)) @ ((cHOL4.list.APPEND @ (((cHOL4.Encode.encode_sum @ X2) @ X3) @ X4)) @ X5))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X4) @ X5))))))))))))))))) (TDecode.decode_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X1) @ X4)) @ ((cHOL4.Decode.wf_decoder @ X0) @ X3))) @ ((cHOL4.min.= @ ((((cHOL4.Decode.decode_sum @ ((cHOL4.Encode.lift_sum @ X1) @ X0)) @ X4) @ X3) @ X2)) @ (((cHOL4.list.list_CASE @ X2) @ cHOL4.option.NONE) @ (^[X5]: (^[X6]: (((cHOL4.bool.COND @ X5) @ (((cHOL4.option.option_CASE @ (X4 @ X6)) @ cHOL4.option.NONE) @ (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X8]: (^[X9]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X8)) @ X9)))))))) @ (((cHOL4.option.option_CASE @ (X3 @ X6)) @ cHOL4.option.NONE) @ (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X11]: (^[X9]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X11)) @ X9)))))))))))))))))))))))) (TDecode.wf_decode_option,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.Decode.wf_decoder @ (cHOL4.Encode.lift_option @ X0)) @ ((cHOL4.Decode.decode_option @ (cHOL4.Encode.lift_option @ X0)) @ X1)))))))) (TDecode.dec2enc_decode_option,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.Encode.lift_option @ X0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ ((cHOL4.Decode.decode_option @ (cHOL4.Encode.lift_option @ X0)) @ X1)) @ X2)) @ ((cHOL4.Encode.encode_option @ (cHOL4.Decode.dec2enc @ X1)) @ X2)))))))))) (TDecode.encode_then_decode_option,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.Encode.lift_option @ X0) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.Decode.decode_option @ (cHOL4.Encode.lift_option @ X0)) @ ((cHOL4.Decode.enc2dec @ X0) @ X1)) @ ((cHOL4.list.APPEND @ ((cHOL4.Encode.encode_option @ X1) @ X2)) @ X3))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (TDecode.decode_option,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.Decode.decode_option @ (cHOL4.Encode.lift_option @ X0)) @ X2) @ X1)) @ (((cHOL4.list.list_CASE @ X1) @ cHOL4.option.NONE) @ (^[X3]: (^[X4]: (((cHOL4.bool.COND @ X3) @ (((cHOL4.option.option_CASE @ (X2 @ X4)) @ cHOL4.option.NONE) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ (cHOL4.option.SOME @ X6)) @ X7)))))))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.option.NONE) @ X4))))))))))))))) (TDecode.wf_decode_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.Decode.wf_decoder @ (cHOL4.list.EVERY @ X0)) @ ((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ X0)) @ X1)))))))) (TDecode.dec2enc_decode_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.list.EVERY @ X0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ ((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ X0)) @ X1)) @ X2)) @ ((cHOL4.Encode.encode_list @ (cHOL4.Decode.dec2enc @ X1)) @ X2)))))))))) (TDecode.encode_then_decode_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.list.EVERY @ X0) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ X0)) @ ((cHOL4.Decode.enc2dec @ X0) @ X1)) @ ((cHOL4.list.APPEND @ ((cHOL4.Encode.encode_list @ X1) @ X2)) @ X3))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (TDecode.decode_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ X0)) @ X2) @ X1)) @ (((cHOL4.list.list_CASE @ X1) @ cHOL4.option.NONE) @ (^[X3]: (^[X4]: (((cHOL4.bool.COND @ X3) @ (((cHOL4.option.option_CASE @ (X2 @ X4)) @ cHOL4.option.NONE) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: (((cHOL4.option.option_CASE @ (((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ X0)) @ X2) @ X7)) @ cHOL4.option.NONE) @ (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X6) @ X9)) @ X10))))))))))))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ X4))))))))))))))) (TDecode.wf_decode_blist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X1) @ X2)) @ ((cHOL4.Decode.wf_decoder @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ (((cHOL4.Decode.decode_blist @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ X0) @ X2)))))))))) (TDecode.dec2enc_decode_blist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Decode.wf_decoder @ X1) @ X2)) @ (((cHOL4.Encode.lift_blist @ X0) @ X1) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ (((cHOL4.Decode.decode_blist @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ X0) @ X2)) @ X3)) @ (((cHOL4.Encode.encode_blist @ X0) @ (cHOL4.Decode.dec2enc @ X2)) @ X3)))))))))))) (TDecode.encode_then_decode_blist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X1) @ X2)) @ (((cHOL4.Encode.lift_blist @ X0) @ X1) @ X3))) @ ((cHOL4.min.= @ ((((cHOL4.Decode.decode_blist @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ X0) @ ((cHOL4.Decode.enc2dec @ X1) @ X2)) @ ((cHOL4.list.APPEND @ (((cHOL4.Encode.encode_blist @ X0) @ X2) @ X3)) @ X4))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X3) @ X4))))))))))))))) (TDecode.decode_blist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X3)) @ ((cHOL4.min.= @ ((((cHOL4.Decode.decode_blist @ ((cHOL4.Encode.lift_blist @ X1) @ X0)) @ X1) @ X3) @ X2)) @ (((cHOL4.arithmetic.num_CASE @ X1) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ X2))) @ (^[X4]: (((cHOL4.option.option_CASE @ (X3 @ X2)) @ cHOL4.option.NONE) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: (((cHOL4.option.option_CASE @ ((((cHOL4.Decode.decode_blist @ ((cHOL4.Encode.lift_blist @ X4) @ X0)) @ X4) @ X3) @ X7)) @ cHOL4.option.NONE) @ (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X6) @ X9)) @ X10))))))))))))))))))))))))) (TDecode.wf_decode_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Decode.wf_decoder @ X0) @ (cHOL4.Decode.decode_num @ X0))))) (TDecode.dec2enc_decode_num,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ (cHOL4.Decode.decode_num @ X0)) @ X1)) @ (cHOL4.Encode.encode_num @ X1)))))))) (TDecode.decode_num_total,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_num @ (cHOL4.combin.K @ cHOL4.bool.T)) @ X0)) @ (((cHOL4.list.list_CASE @ X0) @ cHOL4.option.NONE) @ (^[X1]: (^[X2]: (((cHOL4.bool.COND @ X1) @ (((cHOL4.list.list_CASE @ X2) @ cHOL4.option.NONE) @ (^[X3]: (^[X4]: (((cHOL4.bool.COND @ X3) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X4))) @ (((cHOL4.option.option_CASE @ ((cHOL4.Decode.decode_num @ (cHOL4.combin.K @ cHOL4.bool.T)) @ X4)) @ cHOL4.option.NONE) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X2]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X6)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))))))))))) @ (((cHOL4.option.option_CASE @ ((cHOL4.Decode.decode_num @ (cHOL4.combin.K @ cHOL4.bool.T)) @ X2)) @ cHOL4.option.NONE) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X2]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X6)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))))))))))))))) (TDecode.decode_num,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Decode.decode_num @ X0) @ X1)) @ (((cHOL4.list.list_CASE @ X1) @ cHOL4.option.NONE) @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ X2) @ (((cHOL4.list.list_CASE @ X3) @ cHOL4.option.NONE) @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ X4) @ (((cHOL4.bool.COND @ (X0 @ cHOL4.num.0)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X5))) @ cHOL4.option.NONE)) @ (((cHOL4.option.option_CASE @ ((cHOL4.Decode.decode_num @ (cHOL4.combin.K @ cHOL4.bool.T)) @ X5)) @ cHOL4.option.NONE) @ (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X7)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X7)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3))) @ cHOL4.option.NONE))))))))))) @ (((cHOL4.option.option_CASE @ ((cHOL4.Decode.decode_num @ (cHOL4.combin.K @ cHOL4.bool.T)) @ X3)) @ cHOL4.option.NONE) @ (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X7)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X7)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X3))) @ cHOL4.option.NONE)))))))))))))))) (TDecode.dec_bnum_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ cHOL4.num.0) @ X0)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ (((cHOL4.list.list_CASE @ X0) @ cHOL4.option.NONE) @ (^[X2]: (^[X3]: (((cHOL4.option.option_CASE @ ((cHOL4.Decode.dec_bnum @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3)) @ cHOL4.option.NONE) @ (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X5)) @ (((cHOL4.bool.COND @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ X6)))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ (((cHOL4.list.list_CASE @ X0) @ cHOL4.option.NONE) @ (^[X2]: (^[X3]: (((cHOL4.option.option_CASE @ ((cHOL4.Decode.dec_bnum @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X3)) @ cHOL4.option.NONE) @ (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X5)) @ (((cHOL4.bool.COND @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ X6)))))))))))))))))) (TDecode.dec_bnum_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ X0) @ X1)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))))))) (TDecode.dec_bnum_inj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.Decode.dec_bnum @ X0) @ X1)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.Encode.encode_bnum @ X0) @ X2)) @ X3)))))))))))) (TDecode.wf_decode_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_pred_bnum @ X0) @ X1)) @ ((cHOL4.Decode.wf_decoder @ X1) @ ((cHOL4.Decode.decode_bnum @ X0) @ X1)))))))) (TDecode.dec2enc_decode_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_pred_bnum @ X0) @ X1)) @ (X1 @ X2))) @ ((cHOL4.min.= @ ((cHOL4.Decode.dec2enc @ ((cHOL4.Decode.decode_bnum @ X0) @ X1)) @ X2)) @ ((cHOL4.Encode.encode_bnum @ X0) @ X2)))))))))) (TDecode.decode_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_pred_bnum @ X1) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.Decode.decode_bnum @ X1) @ X0) @ X2)) @ (((cHOL4.option.option_CASE @ ((cHOL4.Decode.dec_bnum @ X1) @ X2)) @ cHOL4.option.NONE) @ (^[X3]: ((cHOL4.pair.pair_CASE @ X3) @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ (X0 @ X4)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ cHOL4.option.NONE))))))))))))))) (TDecode.wf_decode_tree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X1)) @ ((cHOL4.Decode.wf_decoder @ (cHOL4.Encode.lift_tree @ X0)) @ ((cHOL4.Decode.decode_tree @ (cHOL4.Encode.lift_tree @ X0)) @ X1)))))))) (TDecode.decode_tree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Decode.wf_decoder @ X0) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.Decode.decode_tree @ (cHOL4.Encode.lift_tree @ X0)) @ X2) @ X1)) @ (((cHOL4.option.option_CASE @ (X2 @ X1)) @ cHOL4.option.NONE) @ (^[X3]: ((cHOL4.pair.pair_CASE @ X3) @ (^[X4]: (^[X5]: (((cHOL4.option.option_CASE @ (((cHOL4.Decode.decode_list @ (cHOL4.list.EVERY @ (cHOL4.Encode.lift_tree @ X0))) @ ((cHOL4.Decode.decode_tree @ (cHOL4.Encode.lift_tree @ X0)) @ X2)) @ X5)) @ cHOL4.option.NONE) @ (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.Encode.Node @ X4) @ X7)) @ X8))))))))))))))))))))) (TDeepSyntax.deep_form_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X3]: (^[X4]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB))) @ ((cHOL4.ind_type.FCONS @ X3) @ ((cHOL4.ind_type.FCONS @ X4) @ (^[X5]: cHOL4.ind_type.BOTTOM)))))) @ X3) @ X4))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X2 @ X4)))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X3]: (^[X4]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB))) @ ((cHOL4.ind_type.FCONS @ X3) @ ((cHOL4.ind_type.FCONS @ X4) @ (^[X5]: cHOL4.ind_type.BOTTOM)))))) @ X3) @ X4))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X2 @ X4)))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X6]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB))) @ ((cHOL4.ind_type.FCONS @ X6) @ (^[X5]: cHOL4.ind_type.BOTTOM)))) @ X6))) @ (X2 @ X6))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((^[X7]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB))) @ (^[X5]: cHOL4.ind_type.BOTTOM))) @ X7))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((^[X8]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ X8) @ cHOL4.bool.ARB))) @ (^[X5]: cHOL4.ind_type.BOTTOM))) @ X8))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((^[X8]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ X8) @ cHOL4.bool.ARB))) @ (^[X5]: cHOL4.ind_type.BOTTOM))) @ X8))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((^[X8]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ X8) @ cHOL4.bool.ARB))) @ (^[X5]: cHOL4.ind_type.BOTTOM))) @ X8))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ (((^[X9]: (^[X10]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ X9) @ X10))) @ (^[X5]: cHOL4.ind_type.BOTTOM)))) @ X9) @ X10)))))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (TDeepSyntax.deep_form_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ ((X2 @ X0) @ X1))))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ ((X3 @ X0) @ X1))))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ (cHOL4.DeepSyntax.Negn @ X10)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ (X4 @ X10))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ (cHOL4.DeepSyntax.UnrelatedBool @ X11)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ (X5 @ X11))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ (cHOL4.DeepSyntax.xLT @ X12)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ (X6 @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ (cHOL4.DeepSyntax.LTx @ X12)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ (X7 @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ (cHOL4.DeepSyntax.xEQ @ X12)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ (X8 @ X12))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ ((cHOL4.DeepSyntax.xDivided @ X13) @ X14)) @ X2) @ X3) @ X4) @ X5) @ X6) @ X7) @ X8) @ X9)) @ ((X9 @ X13) @ X14)))))))))))))))))))))))))))))) (TDeepSyntax.deep_form_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.DeepSyntax.deep_form_size @ X0)) @ (cHOL4.DeepSyntax.deep_form_size @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.DeepSyntax.deep_form_size @ X0)) @ (cHOL4.DeepSyntax.deep_form_size @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ (cHOL4.DeepSyntax.Negn @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.DeepSyntax.deep_form_size @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.basicSize.bool_size @ X3)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ (cHOL4.DeepSyntax.xLT @ X4))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ (cHOL4.DeepSyntax.LTx @ X4))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ (cHOL4.DeepSyntax.xEQ @ X4))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.deep_form_size @ ((cHOL4.DeepSyntax.xDivided @ X5) @ X6))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (TDeepSyntax.eval_form_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)) @ ((cHOL4.DeepSyntax.eval_form @ X1) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1)) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)) @ ((cHOL4.DeepSyntax.eval_form @ X1) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.Negn @ X3)) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.DeepSyntax.eval_form @ X3) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.UnrelatedBool @ X4)) @ X2)) @ X4)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.xLT @ X5)) @ X2)) @ ((cHOL4.integer.int_lt @ X2) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.LTx @ X5)) @ X2)) @ ((cHOL4.integer.int_lt @ X5) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.xEQ @ X5)) @ X2)) @ ((cHOL4.min.= @ X2) @ X5))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ ((cHOL4.DeepSyntax.xDivided @ X6) @ X7)) @ X2)) @ ((cHOL4.integer.int_divides @ X6) @ ((cHOL4.integer.int_add @ X2) @ X7))))))))))))))))) (TDeepSyntax.neginf_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1))) @ ((cHOL4.DeepSyntax.Conjn @ (cHOL4.DeepSyntax.neginf @ X0)) @ (cHOL4.DeepSyntax.neginf @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1))) @ ((cHOL4.DeepSyntax.Disjn @ (cHOL4.DeepSyntax.neginf @ X0)) @ (cHOL4.DeepSyntax.neginf @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ (cHOL4.DeepSyntax.Negn @ X2))) @ (cHOL4.DeepSyntax.Negn @ (cHOL4.DeepSyntax.neginf @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))) @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ (cHOL4.DeepSyntax.xLT @ X4))) @ (cHOL4.DeepSyntax.UnrelatedBool @ cHOL4.bool.T))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ (cHOL4.DeepSyntax.LTx @ X4))) @ (cHOL4.DeepSyntax.UnrelatedBool @ cHOL4.bool.F))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ (cHOL4.DeepSyntax.xEQ @ X4))) @ (cHOL4.DeepSyntax.UnrelatedBool @ cHOL4.bool.F))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.neginf @ ((cHOL4.DeepSyntax.xDivided @ X5) @ X6))) @ ((cHOL4.DeepSyntax.xDivided @ X5) @ X6)))))))))))))) (TDeepSyntax.posinf_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1))) @ ((cHOL4.DeepSyntax.Conjn @ (cHOL4.DeepSyntax.posinf @ X0)) @ (cHOL4.DeepSyntax.posinf @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1))) @ ((cHOL4.DeepSyntax.Disjn @ (cHOL4.DeepSyntax.posinf @ X0)) @ (cHOL4.DeepSyntax.posinf @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ (cHOL4.DeepSyntax.Negn @ X2))) @ (cHOL4.DeepSyntax.Negn @ (cHOL4.DeepSyntax.posinf @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))) @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ (cHOL4.DeepSyntax.xLT @ X4))) @ (cHOL4.DeepSyntax.UnrelatedBool @ cHOL4.bool.F))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ (cHOL4.DeepSyntax.LTx @ X4))) @ (cHOL4.DeepSyntax.UnrelatedBool @ cHOL4.bool.T))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ (cHOL4.DeepSyntax.xEQ @ X4))) @ (cHOL4.DeepSyntax.UnrelatedBool @ cHOL4.bool.F))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.DeepSyntax.posinf @ ((cHOL4.DeepSyntax.xDivided @ X5) @ X6))) @ ((cHOL4.DeepSyntax.xDivided @ X5) @ X6)))))))))))))) (TDeepSyntax.alldivide_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X2)) @ ((cHOL4.DeepSyntax.alldivide @ X1) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X2)) @ ((cHOL4.DeepSyntax.alldivide @ X1) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ (cHOL4.DeepSyntax.Negn @ X3)) @ X2)) @ ((cHOL4.DeepSyntax.alldivide @ X3) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ (cHOL4.DeepSyntax.UnrelatedBool @ X4)) @ X2)) @ cHOL4.bool.T)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ (cHOL4.DeepSyntax.xLT @ X5)) @ X2)) @ cHOL4.bool.T)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ (cHOL4.DeepSyntax.LTx @ X5)) @ X2)) @ cHOL4.bool.T)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ (cHOL4.DeepSyntax.xEQ @ X5)) @ X2)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.alldivide @ ((cHOL4.DeepSyntax.xDivided @ X6) @ X7)) @ X2)) @ ((cHOL4.integer.int_divides @ X6) @ X2)))))))))))))))) (TDeepSyntax.Aset_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ ((cHOL4.DeepSyntax.Conjn @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.DeepSyntax.Aset @ X0) @ X1)) @ ((cHOL4.DeepSyntax.Aset @ X0) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ ((cHOL4.DeepSyntax.Disjn @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.DeepSyntax.Aset @ X0) @ X1)) @ ((cHOL4.DeepSyntax.Aset @ X0) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ (cHOL4.DeepSyntax.Negn @ X3))) @ ((cHOL4.DeepSyntax.Aset @ (cHOL4.bool.~ @ X0)) @ X3))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ (cHOL4.DeepSyntax.UnrelatedBool @ X4))) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ (cHOL4.DeepSyntax.xLT @ X5))) @ (((cHOL4.bool.COND @ X0) @ ((cHOL4.pred_set.INSERT @ X5) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ (cHOL4.DeepSyntax.LTx @ X5))) @ (((cHOL4.bool.COND @ X0) @ cHOL4.pred_set.EMPTY) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.integer.int_add @ X5) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.pred_set.EMPTY)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ (cHOL4.DeepSyntax.xEQ @ X5))) @ (((cHOL4.bool.COND @ X0) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.integer.int_add @ X5) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.pred_set.INSERT @ X5) @ cHOL4.pred_set.EMPTY)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Aset @ X0) @ ((cHOL4.DeepSyntax.xDivided @ X6) @ X7))) @ cHOL4.pred_set.EMPTY))))))))))))))) (TDeepSyntax.Bset_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ ((cHOL4.DeepSyntax.Conjn @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.DeepSyntax.Bset @ X0) @ X1)) @ ((cHOL4.DeepSyntax.Bset @ X0) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ ((cHOL4.DeepSyntax.Disjn @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.DeepSyntax.Bset @ X0) @ X1)) @ ((cHOL4.DeepSyntax.Bset @ X0) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ (cHOL4.DeepSyntax.Negn @ X3))) @ ((cHOL4.DeepSyntax.Bset @ (cHOL4.bool.~ @ X0)) @ X3))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ (cHOL4.DeepSyntax.UnrelatedBool @ X4))) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ (cHOL4.DeepSyntax.xLT @ X5))) @ (((cHOL4.bool.COND @ X0) @ cHOL4.pred_set.EMPTY) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.integer.int_add @ X5) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ cHOL4.pred_set.EMPTY)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ (cHOL4.DeepSyntax.LTx @ X5))) @ (((cHOL4.bool.COND @ X0) @ ((cHOL4.pred_set.INSERT @ X5) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ (cHOL4.DeepSyntax.xEQ @ X5))) @ (((cHOL4.bool.COND @ X0) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.integer.int_add @ X5) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.pred_set.INSERT @ X5) @ cHOL4.pred_set.EMPTY)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Bset @ X0) @ ((cHOL4.DeepSyntax.xDivided @ X6) @ X7))) @ cHOL4.pred_set.EMPTY))))))))))))))) (TDeepSyntax.datatype_deep_form,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((((((((X0 @ cHOL4.DeepSyntax.Conjn) @ cHOL4.DeepSyntax.Disjn) @ cHOL4.DeepSyntax.Negn) @ cHOL4.DeepSyntax.UnrelatedBool) @ cHOL4.DeepSyntax.xLT) @ cHOL4.DeepSyntax.LTx) @ cHOL4.DeepSyntax.xEQ) @ cHOL4.DeepSyntax.xDivided))))) (TDeepSyntax.deep_form_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X0) @ X1)) @ ((cHOL4.DeepSyntax.Conjn @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X0) @ X1)) @ ((cHOL4.DeepSyntax.Disjn @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.Negn @ X4)) @ (cHOL4.DeepSyntax.Negn @ X5))) @ ((cHOL4.min.= @ X4) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.UnrelatedBool @ X6)) @ (cHOL4.DeepSyntax.UnrelatedBool @ X7))) @ ((cHOL4.min.= @ X6) @ X7))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.xLT @ X8)) @ (cHOL4.DeepSyntax.xLT @ X9))) @ ((cHOL4.min.= @ X8) @ X9))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.LTx @ X8)) @ (cHOL4.DeepSyntax.LTx @ X9))) @ ((cHOL4.min.= @ X8) @ X9))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.xEQ @ X8)) @ (cHOL4.DeepSyntax.xEQ @ X9))) @ ((cHOL4.min.= @ X8) @ X9))))))) @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.xDivided @ X10) @ X11)) @ ((cHOL4.DeepSyntax.xDivided @ X12) @ X13))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X10) @ X12)) @ ((cHOL4.min.= @ X11) @ X13))))))))))))))))))) (TDeepSyntax.deep_form_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ ((cHOL4.DeepSyntax.Disjn @ X2) @ X0)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.Negn @ X4)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.UnrelatedBool @ X5)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.xLT @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.LTx @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.xEQ @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Conjn @ X3) @ X1)) @ ((cHOL4.DeepSyntax.xDivided @ X8) @ X7)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.Negn @ X4)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.UnrelatedBool @ X5)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.xLT @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.LTx @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X3) @ X1)) @ (cHOL4.DeepSyntax.xEQ @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.Disjn @ X3) @ X1)) @ ((cHOL4.DeepSyntax.xDivided @ X8) @ X7)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.Negn @ X4)) @ (cHOL4.DeepSyntax.UnrelatedBool @ X9)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.Negn @ X4)) @ (cHOL4.DeepSyntax.xLT @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.Negn @ X4)) @ (cHOL4.DeepSyntax.LTx @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.Negn @ X4)) @ (cHOL4.DeepSyntax.xEQ @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.Negn @ X4)) @ ((cHOL4.DeepSyntax.xDivided @ X12) @ X11)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.UnrelatedBool @ X5)) @ (cHOL4.DeepSyntax.xLT @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.UnrelatedBool @ X5)) @ (cHOL4.DeepSyntax.LTx @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.UnrelatedBool @ X5)) @ (cHOL4.DeepSyntax.xEQ @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.UnrelatedBool @ X5)) @ ((cHOL4.DeepSyntax.xDivided @ X12) @ X11)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.xLT @ X6)) @ (cHOL4.DeepSyntax.LTx @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.xLT @ X6)) @ (cHOL4.DeepSyntax.xEQ @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.xLT @ X6)) @ ((cHOL4.DeepSyntax.xDivided @ X12) @ X11)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.LTx @ X6)) @ (cHOL4.DeepSyntax.xEQ @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.LTx @ X6)) @ ((cHOL4.DeepSyntax.xDivided @ X12) @ X11)))))))))) @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.DeepSyntax.xEQ @ X6)) @ ((cHOL4.DeepSyntax.xDivided @ X12) @ X11))))))))))))))))))))))))))))))))))))) (TDeepSyntax.deep_form_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X16]: (cHOL4.bool.! @ (^[X17]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X8) @ X9)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ ((cHOL4.DeepSyntax.Conjn @ X18) @ X19))) @ ((cHOL4.min.= @ ((X10 @ X18) @ X19)) @ ((X7 @ X18) @ X19)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ ((cHOL4.DeepSyntax.Disjn @ X18) @ X19))) @ ((cHOL4.min.= @ ((X11 @ X18) @ X19)) @ ((X6 @ X18) @ X19)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X20]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ (cHOL4.DeepSyntax.Negn @ X20))) @ ((cHOL4.min.= @ (X12 @ X20)) @ (X5 @ X20)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X21]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ (cHOL4.DeepSyntax.UnrelatedBool @ X21))) @ ((cHOL4.min.= @ (X13 @ X21)) @ (X4 @ X21)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ (cHOL4.DeepSyntax.xLT @ X22))) @ ((cHOL4.min.= @ (X14 @ X22)) @ (X3 @ X22)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ (cHOL4.DeepSyntax.LTx @ X22))) @ ((cHOL4.min.= @ (X15 @ X22)) @ (X2 @ X22)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ (cHOL4.DeepSyntax.xEQ @ X22))) @ ((cHOL4.min.= @ (X16 @ X22)) @ (X1 @ X22)))))) @ (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X9) @ ((cHOL4.DeepSyntax.xDivided @ X23) @ X24))) @ ((cHOL4.min.= @ ((X17 @ X23) @ X24)) @ ((X0 @ X23) @ X24)))))))))))))))) @ ((cHOL4.min.= @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ X8) @ X10) @ X11) @ X12) @ X13) @ X14) @ X15) @ X16) @ X17)) @ (((((((((cHOL4.DeepSyntax.deep_form_CASE @ X9) @ X7) @ X6) @ X5) @ X4) @ X3) @ X2) @ X1) @ X0)))))))))))))))))))))))))))))))))))))))) (TDeepSyntax.deep_form_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.DeepSyntax.Conjn @ X1) @ X2))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.DeepSyntax.Disjn @ X1) @ X2))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.DeepSyntax.Negn @ X1))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ (cHOL4.DeepSyntax.xLT @ X4))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ (cHOL4.DeepSyntax.LTx @ X4))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ (cHOL4.DeepSyntax.xEQ @ X4))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X0) @ ((cHOL4.DeepSyntax.xDivided @ X4) @ X5)))))))))))))))) (TDeepSyntax.deep_form_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X8 @ ((cHOL4.DeepSyntax.Conjn @ X9) @ X10))) @ ((((X0 @ X9) @ X10) @ (X8 @ X9)) @ (X8 @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X8 @ ((cHOL4.DeepSyntax.Disjn @ X9) @ X10))) @ ((((X1 @ X9) @ X10) @ (X8 @ X9)) @ (X8 @ X10)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.= @ (X8 @ (cHOL4.DeepSyntax.Negn @ X11))) @ ((X2 @ X11) @ (X8 @ X11)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.= @ (X8 @ (cHOL4.DeepSyntax.UnrelatedBool @ X12))) @ (X3 @ X12))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X8 @ (cHOL4.DeepSyntax.xLT @ X13))) @ (X4 @ X13))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X8 @ (cHOL4.DeepSyntax.LTx @ X13))) @ (X5 @ X13))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X8 @ (cHOL4.DeepSyntax.xEQ @ X13))) @ (X6 @ X13))))) @ (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (X8 @ ((cHOL4.DeepSyntax.xDivided @ X14) @ X15))) @ ((X7 @ X14) @ X15)))))))))))))))))))))))))))))))) (TDeepSyntax.deep_form_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ (X0 @ ((cHOL4.DeepSyntax.Conjn @ X1) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ (X0 @ ((cHOL4.DeepSyntax.Disjn @ X1) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.DeepSyntax.Negn @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (X0 @ (cHOL4.DeepSyntax.UnrelatedBool @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (X0 @ (cHOL4.DeepSyntax.xLT @ X4))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (X0 @ (cHOL4.DeepSyntax.LTx @ X4))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (X0 @ (cHOL4.DeepSyntax.xEQ @ X4))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (X0 @ ((cHOL4.DeepSyntax.xDivided @ X4) @ X5)))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (TDeepSyntax.neginf_ok,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.neginf @ X0)) @ X2)))))))))) (TDeepSyntax.posinf_ok,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.posinf @ X0)) @ X2)))))))))) (TDeepSyntax.add_d_neginf,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.neginf @ X0)) @ X1)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.neginf @ X0)) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ X2) @ X3)))))))))))))) (TDeepSyntax.add_d_posinf,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.posinf @ X0)) @ X1)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.posinf @ X0)) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ X2) @ X3)))))))))))))) (TDeepSyntax.neginf_disj1_implies_exoriginal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X2) @ X1)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.neginf @ X0)) @ X2)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.DeepSyntax.eval_form @ X0) @ X3)))))))))))) (TDeepSyntax.posinf_disj1_implies_exoriginal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X2) @ X1)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.posinf @ X0)) @ X2)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.DeepSyntax.eval_form @ X0) @ X3)))))))))))) (TDeepSyntax.neginf_exoriginal_implies_rhs,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X3) @ X1)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.neginf @ X0)) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ X0))) @ ((cHOL4.DeepSyntax.eval_form @ X0) @ ((cHOL4.integer.int_add @ X5) @ X4))))))))))))))))))) (TDeepSyntax.posinf_exoriginal_implies_rhs,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X3) @ X1)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.posinf @ X0)) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ X0))) @ ((cHOL4.DeepSyntax.eval_form @ X0) @ ((cHOL4.integer.int_add @ X5) @ (cHOL4.integer.int_neg @ X4)))))))))))))))))))) (TDeepSyntax.neginf_exoriginal_eq_rhs,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.combin.K @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_le @ X3) @ X1))) @ X3)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.neginf @ X0)) @ X3))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ X0))) @ ((cHOL4.combin.K @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X5)) @ ((cHOL4.integer.int_le @ X5) @ X1))) @ X5))) @ ((cHOL4.DeepSyntax.eval_form @ X0) @ ((cHOL4.integer.int_add @ X4) @ X5))))))))))))))) (TDeepSyntax.posinf_exoriginal_eq_rhs,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.DeepSyntax.alldivide @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.DeepSyntax.eval_form @ X0) @ X2)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.combin.K @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_le @ X3) @ X1))) @ X3)) @ ((cHOL4.DeepSyntax.eval_form @ (cHOL4.DeepSyntax.posinf @ X0)) @ X3))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ X0))) @ ((cHOL4.combin.K @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X5)) @ ((cHOL4.integer.int_le @ X5) @ X1))) @ X5))) @ ((cHOL4.DeepSyntax.eval_form @ X0) @ ((cHOL4.integer.int_add @ X4) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X5)))))))))))))))) (TDeepSyntax.in_bset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ ((cHOL4.DeepSyntax.Conjn @ X5) @ X4)))) @ (X8 @ X9))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ X5))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ X4))) @ (X8 @ X9))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ ((cHOL4.DeepSyntax.Disjn @ X5) @ X4)))) @ (X8 @ X9))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ X5))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ X4))) @ (X8 @ X9))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.Negn @ X6)))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.F) @ X6))) @ (X8 @ X9)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.Negn @ X6)))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ X6))) @ (X8 @ X9)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ (cHOL4.DeepSyntax.UnrelatedBool @ X7)))) @ (X8 @ X9))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.xLT @ X3)))) @ (X8 @ X9))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.xLT @ X3)))) @ (X8 @ X9))))) @ (X8 @ ((cHOL4.integer.int_add @ X3) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.LTx @ X3)))) @ (X8 @ X9))))) @ (X8 @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.LTx @ X3)))) @ (X8 @ X9))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.xEQ @ X3)))) @ (X8 @ X9))))) @ (X8 @ ((cHOL4.integer.int_add @ X3) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.xEQ @ X3)))) @ (X8 @ X9))))) @ (X8 @ X3))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Bset @ X0) @ ((cHOL4.DeepSyntax.xDivided @ X2) @ X1)))) @ (X8 @ X9))))) @ cHOL4.bool.F))))))))))))))))))))))))))))))) (TDeepSyntax.in_aset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ ((cHOL4.DeepSyntax.Conjn @ X5) @ X4)))) @ (X8 @ X9))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ X5))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ X4))) @ (X8 @ X9))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ ((cHOL4.DeepSyntax.Disjn @ X5) @ X4)))) @ (X8 @ X9))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ X5))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ X4))) @ (X8 @ X9))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.Negn @ X6)))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.F) @ X6))) @ (X8 @ X9)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.Negn @ X6)))) @ (X8 @ X9))))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ X6))) @ (X8 @ X9)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ (cHOL4.DeepSyntax.UnrelatedBool @ X7)))) @ (X8 @ X9))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.xLT @ X3)))) @ (X8 @ X9))))) @ (X8 @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.xLT @ X3)))) @ (X8 @ X9))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.LTx @ X3)))) @ (X8 @ X9))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.LTx @ X3)))) @ (X8 @ X9))))) @ (X8 @ ((cHOL4.integer.int_add @ X3) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.T) @ (cHOL4.DeepSyntax.xEQ @ X3)))) @ (X8 @ X9))))) @ (X8 @ ((cHOL4.integer.int_add @ X3) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ cHOL4.bool.F) @ (cHOL4.DeepSyntax.xEQ @ X3)))) @ (X8 @ X9))))) @ (X8 @ X3))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ ((cHOL4.DeepSyntax.Aset @ X0) @ ((cHOL4.DeepSyntax.xDivided @ X2) @ X1)))) @ (X8 @ X9))))) @ cHOL4.bool.F))))))))))))))))))))))))))))))) (TdefCNF.UNIQUE_tupled_primitive_def,((cHOL4.min.= @ cHOL4.defCNF.UNIQUE_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (((cHOL4.sum.sum_CASE @ X9) @ (^[X11]: (((cHOL4.sum.sum_CASE @ X10) @ (^[X12]: (cHOL4.combin.I @ ((cHOL4.min.= @ (X3 @ X5)) @ ((X7 @ (X3 @ X11)) @ (X3 @ X12)))))) @ (^[X13]: (cHOL4.combin.I @ ((cHOL4.min.= @ (X3 @ X5)) @ ((X7 @ (X3 @ X11)) @ X13))))))) @ (^[X14]: (((cHOL4.sum.sum_CASE @ X10) @ (^[X15]: (cHOL4.combin.I @ ((cHOL4.min.= @ (X3 @ X5)) @ ((X7 @ X14) @ (X3 @ X15)))))) @ (^[X16]: (cHOL4.combin.I @ ((cHOL4.min.= @ (X3 @ X5)) @ ((X7 @ X14) @ X16)))))))))))))))))))))))) (TdefCNF.UNIQUE_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.defCNF.UNIQUE @ X0) @ X1) @ X2)) @ (cHOL4.defCNF.UNIQUE_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (TdefCNF.DEF_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.defCNF.DEF @ X0) @ X1) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.defCNF.DEF @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ (((cHOL4.defCNF.UNIQUE @ X0) @ X1) @ X2)) @ (((cHOL4.defCNF.DEF @ X0) @ (cHOL4.num.SUC @ X1)) @ X3))))))))))))) (TdefCNF.OK_tupled_primitive_def,((cHOL4.min.= @ cHOL4.defCNF.OK_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (((cHOL4.sum.sum_CASE @ X7) @ (^[X9]: (((cHOL4.sum.sum_CASE @ X8) @ (^[X10]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X9) @ X3)) @ ((cHOL4.prim_rec.< @ X10) @ X3))))) @ (^[X11]: (cHOL4.combin.I @ ((cHOL4.prim_rec.< @ X9) @ X3)))))) @ (^[X12]: (((cHOL4.sum.sum_CASE @ X8) @ (^[X13]: (cHOL4.combin.I @ ((cHOL4.prim_rec.< @ X13) @ X3)))) @ (^[X14]: (cHOL4.combin.I @ cHOL4.bool.T))))))))))))))))))) (TdefCNF.OK_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.defCNF.OK @ X0) @ X1)) @ (cHOL4.defCNF.OK_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TdefCNF.OKDEF_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.defCNF.OKDEF @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.defCNF.OKDEF @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.defCNF.OK @ X0) @ X1)) @ ((cHOL4.defCNF.OKDEF @ (cHOL4.num.SUC @ X0)) @ X2))))))))))) (TdefCNF.UNIQUE_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (((X0 @ X1) @ X2) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X4)) @ (cHOL4.sum.INL @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (((X0 @ X1) @ X2) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X4)) @ (cHOL4.sum.INR @ X6))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X5]: (((X0 @ X1) @ X2) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X7)) @ (cHOL4.sum.INL @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X6]: (((X0 @ X1) @ X2) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X7)) @ (cHOL4.sum.INR @ X6)))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (((X0 @ X1) @ X8) @ ((cHOL4.pair.|comma| @ X9) @ ((cHOL4.pair.|comma| @ X10) @ X11))))))))))))))))) (TdefCNF.UNIQUE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.defCNF.UNIQUE @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INL @ X2))))) @ ((cHOL4.min.= @ (X0 @ X1)) @ ((X4 @ (X0 @ X3)) @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.defCNF.UNIQUE @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INR @ X5))))) @ ((cHOL4.min.= @ (X0 @ X1)) @ ((X4 @ (X0 @ X3)) @ X5)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.defCNF.UNIQUE @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X6)) @ (cHOL4.sum.INL @ X2))))) @ ((cHOL4.min.= @ (X0 @ X1)) @ ((X4 @ X6) @ (X0 @ X2))))) @ ((cHOL4.min.= @ (((cHOL4.defCNF.UNIQUE @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X6)) @ (cHOL4.sum.INR @ X5))))) @ ((cHOL4.min.= @ (X0 @ X1)) @ ((X4 @ X6) @ X5))))))))))))))))))))) (TdefCNF.OK_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INL @ X4))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INR @ X5))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X6)) @ (cHOL4.sum.INL @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X6)) @ (cHOL4.sum.INR @ X5)))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((X0 @ X7) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X9) @ X10))))))))))))))) (TdefCNF.OK_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.defCNF.OK @ X0) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X2)) @ (cHOL4.sum.INL @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.defCNF.OK @ X0) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INL @ X2)) @ (cHOL4.sum.INR @ X4))))) @ ((cHOL4.prim_rec.< @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.defCNF.OK @ X0) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X5)) @ (cHOL4.sum.INL @ X1))))) @ ((cHOL4.prim_rec.< @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.defCNF.OK @ X0) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.sum.INR @ X5)) @ (cHOL4.sum.INR @ X4))))) @ cHOL4.bool.T))))))))))))))))) (TdefCNF.DEF_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.defCNF.DEF @ X3) @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.bool./\ @ (((cHOL4.defCNF.DEF @ X3) @ X0) @ X2)) @ (((cHOL4.defCNF.UNIQUE @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.list.LENGTH @ X2))) @ X1)))))))))))) (TdefCNF.OKDEF_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.defCNF.OKDEF @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.defCNF.OKDEF @ X0) @ X2)) @ ((cHOL4.defCNF.OK @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.list.LENGTH @ X2))) @ X1)))))))))) (TdefCNF.CONSISTENCY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.defCNF.OKDEF @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.defCNF.DEF @ X2) @ X0) @ X1))))))))) (TdefCNF.BIGSTEP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.min.= @ X1) @ (X2 @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (X0 @ X3)))) @ X1)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ X3)) @ (X2 @ X3))))))))))))) (TdefCNF.FINAL_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X1)) @ X2)) @ (((cHOL4.defCNF.DEF @ X0) @ (cHOL4.num.SUC @ X1)) @ cHOL4.list.NIL)))))))))) (Tdivides.divides_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.divides.divides @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.* @ X2) @ X0)))))))))) (Tdivides.prime_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.divides.divides @ X1) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tdivides.PRIMES_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.divides.PRIMES @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.divides.PRIMES @ (cHOL4.num.SUC @ X0))) @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.divides.prime @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.divides.PRIMES @ X0)) @ X1))))))))) (Tdivides.ALL_DIVIDES_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.divides.divides @ X0) @ cHOL4.num.0)))) (Tdivides.ZERO_DIVIDES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.divides.divides @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) (Tdivides.DIVIDES_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.divides.divides @ X0) @ X0)))) (Tdivides.DIVIDES_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X1) @ X2))) @ ((cHOL4.divides.divides @ X0) @ X2))))))))) (Tdivides.ONE_DIVIDES_ALL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.divides.divides @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))) (Tdivides.DIVIDES_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.divides.divides @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tdivides.DIVIDES_ADD_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X0) @ X2))) @ ((cHOL4.divides.divides @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Tdivides.DIVIDES_ADD_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))) @ ((cHOL4.divides.divides @ X0) @ X2))))))))) (Tdivides.DIVIDES_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X0) @ X2))) @ ((cHOL4.divides.divides @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X2)))))))))) (Tdivides.DIVIDES_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.divides.divides @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tdivides.DIVIDES_LEQ_OR_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tdivides.NOT_LT_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.divides.divides @ X0) @ X1)))))))) (Tdivides.DIVIDES_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tdivides.DIVIDES_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tdivides.DIVIDES_MULT_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.divides.divides @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tdivides.DIVIDES_FACT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.divides.divides @ X0) @ (cHOL4.arithmetic.FACT @ X0)))))) (Tdivides.LEQ_DIVIDES_FACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.divides.divides @ X0) @ (cHOL4.arithmetic.FACT @ X1)))))))) (Tdivides.NOT_PRIME_0,(cHOL4.bool.~ @ (cHOL4.divides.prime @ cHOL4.num.0))) (Tdivides.NOT_PRIME_1,(cHOL4.bool.~ @ (cHOL4.divides.prime @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tdivides.PRIME_2,(cHOL4.divides.prime @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) (Tdivides.PRIME_3,(cHOL4.divides.prime @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tdivides.PRIME_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) (Tdivides.ONE_LT_PRIME,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))) (Tdivides.prime_divides_only_self,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.divides.prime @ X1)) @ ((cHOL4.divides.divides @ X0) @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tdivides.PRIME_FACTOR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.divides.prime @ X1)) @ ((cHOL4.divides.divides @ X1) @ X0)))))))) (Tdivides.EUCLID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.divides.prime @ X1))))))) (Tdivides.primePRIMES,(cHOL4.bool.! @ (^[X0]: (cHOL4.divides.prime @ (cHOL4.divides.PRIMES @ X0))))) (Tdivides.INFINITE_PRIMES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ (cHOL4.divides.PRIMES @ X0)) @ (cHOL4.divides.PRIMES @ (cHOL4.num.SUC @ X0)))))) (Tdivides.LT_PRIMES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.divides.PRIMES @ X0)) @ (cHOL4.divides.PRIMES @ X1)))))))) (Tdivides.PRIMES_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.divides.PRIMES @ X0)) @ (cHOL4.divides.PRIMES @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tdivides.INDEX_LESS_PRIMES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ X0) @ (cHOL4.divides.PRIMES @ X0))))) (Tdivides.EUCLID_PRIMES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.prim_rec.< @ X0) @ (cHOL4.divides.PRIMES @ X1))))))) (Tdivides.NEXT_LARGER_PRIME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.divides.PRIMES @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.divides.PRIMES @ X2)) @ X0)))))))))) (Tdivides.PRIMES_NO_GAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.divides.PRIMES @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.divides.PRIMES @ (cHOL4.num.SUC @ X0)))) @ (cHOL4.divides.prime @ X1)))) @ cHOL4.bool.F)))))) (Tdivides.PRIMES_ONTO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (cHOL4.divides.PRIMES @ X1)) @ X0))))))) (Tdivides.PRIME_INDEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.divides.prime @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.divides.PRIMES @ X1)))))))) (Tdivides.ONE_LT_PRIMES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.divides.PRIMES @ X0))))) (Tdivides.ZERO_LT_PRIMES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.divides.PRIMES @ X0))))) (Tdivides.compute_divides,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.divides.divides @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.bool.T) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ cHOL4.bool.T) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ cHOL4.num.0)))))))))) (TEncode.biprefix_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.biprefix @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.list.isPREFIX @ X1) @ X0)) @ ((cHOL4.list.isPREFIX @ X0) @ X1)))))))) (TEncode.wf_pred_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Encode.wf_pred @ X0)) @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1))))))) (TEncode.wf_encoder_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.list.isPREFIX @ (X1 @ X3)) @ (X1 @ X2))))) @ ((cHOL4.min.= @ X2) @ X3)))))))))))) (TEncode.encode_unit_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Encode.encode_unit @ X0)) @ cHOL4.list.NIL)))) (TEncode.encode_bool_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Encode.encode_bool @ X0)) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))) (TEncode.encode_prod_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_prod @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.list.APPEND @ (X0 @ X2)) @ (X1 @ X3)))))))))))) (TEncode.lift_prod_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Encode.lift_prod @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.pair.FST @ X2))) @ (X1 @ (cHOL4.pair.SND @ X2))))))))))) (TEncode.encode_sum_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_sum @ X0) @ X1) @ (cHOL4.sum.INL @ X2))) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ (X0 @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_sum @ X0) @ X1) @ (cHOL4.sum.INR @ X3))) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ (X1 @ X3))))))))))) (TEncode.lift_sum_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Encode.lift_sum @ X0) @ X1) @ X2)) @ (((cHOL4.sum.sum_CASE @ X2) @ (^[X3]: (X0 @ X3))) @ (^[X4]: (X1 @ X4))))))))))) (TEncode.encode_option_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_option @ X0) @ cHOL4.option.NONE)) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_option @ X0) @ (cHOL4.option.SOME @ X1))) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ (X0 @ X1))))))))) (TEncode.lift_option_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.lift_option @ X0) @ X1)) @ (((cHOL4.option.option_CASE @ X1) @ cHOL4.bool.T) @ (^[X2]: (X0 @ X2))))))))) (TEncode.encode_list_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_list @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_list @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ ((cHOL4.list.APPEND @ (X0 @ X1)) @ ((cHOL4.Encode.encode_list @ X0) @ X2)))))))))))) (TEncode.encode_blist_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_blist @ cHOL4.num.0) @ X0) @ X1)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_blist @ (cHOL4.num.SUC @ X2)) @ X0) @ X1)) @ ((cHOL4.list.APPEND @ (X0 @ (cHOL4.list.HD @ X1))) @ (((cHOL4.Encode.encode_blist @ X2) @ X0) @ (cHOL4.list.TL @ X1)))))))))))) (TEncode.lift_blist_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Encode.lift_blist @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ X1) @ X2)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ X0)))))))))) (TEncode.encode_num_primitive_def,((cHOL4.min.= @ cHOL4.Encode.encode_num) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.arithmetic.EVEN @ X1))) @ ((X0 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X1)))) @ ((X0 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))))))))) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ cHOL4.list.NIL))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ (X2 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ (X2 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))) (TEncode.encode_bnum_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_bnum @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_bnum @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X0))) @ ((cHOL4.Encode.encode_bnum @ X1) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (TEncode.collision_free_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.collision_free @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.MOD @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))) @ ((cHOL4.min.= @ X2) @ X3)))))))))))) (TEncode.wf_pred_bnum_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.wf_pred_bnum @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.Encode.wf_pred @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))))))) (TEncode.tree_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X4]: (^[X5]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ X4) @ ((cHOL4.ind_type.FCONS @ X5) @ (^[X6]: cHOL4.ind_type.BOTTOM))))) @ X4) @ X5))) @ (X3 @ X5))))))) @ (X2 @ X1))))) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X7) @ (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ cHOL4.bool.ARB) @ (^[X6]: cHOL4.ind_type.BOTTOM)))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X7) @ (((^[X8]: (^[X5]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.bool.ARB) @ ((cHOL4.ind_type.FCONS @ X8) @ ((cHOL4.ind_type.FCONS @ X5) @ (^[X6]: cHOL4.ind_type.BOTTOM)))))) @ X8) @ X5))) @ ((cHOL4.bool./\ @ (X2 @ X8)) @ (X3 @ X5))))))))) @ (X3 @ X7)))))) @ (X2 @ X1)))))))) @ X0)))) (TEncode.tree_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.tree_CASE @ ((cHOL4.Encode.Node @ X0) @ X1)) @ X2)) @ ((X2 @ X0) @ X1))))))))) (TEncode.tree_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.tree_size @ X0) @ ((cHOL4.Encode.Node @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ ((cHOL4.Encode.tree1_size @ X0) @ X2))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.tree1_size @ X0) @ cHOL4.list.NIL)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.tree1_size @ X0) @ ((cHOL4.list.CONS @ X3) @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.Encode.tree_size @ X0) @ X3)) @ ((cHOL4.Encode.tree1_size @ X0) @ X2))))))))))))) (TEncode.encode_tree_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Encode.encode_tree_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X3))) @ ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.Encode.Node @ X1) @ X3)))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X2]: (^[X7]: ((cHOL4.Encode.tree_CASE @ X7) @ (^[X1]: (^[X3]: (cHOL4.combin.I @ ((cHOL4.list.APPEND @ (X2 @ X1)) @ ((cHOL4.Encode.encode_list @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ X2) @ X8)))) @ X3)))))))))))))) (TEncode.encode_tree_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_tree @ X0) @ X1)) @ (cHOL4.Encode.encode_tree_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TEncode.lift_tree_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Encode.lift_tree_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X3))) @ ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.Encode.Node @ X1) @ X3)))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X2]: (^[X7]: ((cHOL4.Encode.tree_CASE @ X7) @ (^[X1]: (^[X3]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (X2 @ X1)) @ ((cHOL4.list.EVERY @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ X2) @ X8)))) @ X3)))))))))))))) (TEncode.lift_tree_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.lift_tree @ X0) @ X1)) @ (cHOL4.Encode.lift_tree_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TEncode.biprefix_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Encode.biprefix @ X0) @ X0)))) (TEncode.biprefix_sym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.biprefix @ X0) @ X1)) @ ((cHOL4.Encode.biprefix @ X1) @ X0))))))) (TEncode.biprefix_append,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.Encode.biprefix @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ ((cHOL4.Encode.biprefix @ X0) @ X2))))))))))) (TEncode.biprefix_cons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.Encode.biprefix @ ((cHOL4.list.CONS @ X0) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.Encode.biprefix @ X1) @ X3)))))))))))) (TEncode.biprefix_appends,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.biprefix @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.Encode.biprefix @ X1) @ X2))))))))) (TEncode.wf_encoder_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.Encode.biprefix @ (X1 @ X2)) @ (X1 @ X3))))) @ ((cHOL4.min.= @ X2) @ X3)))))))))))) (TEncode.wf_encoder_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3))))))) @ ((cHOL4.Encode.wf_encoder @ X0) @ X2))))))))) (TEncode.wf_encoder_total,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ (cHOL4.combin.K @ cHOL4.bool.T)) @ X1)) @ ((cHOL4.Encode.wf_encoder @ X0) @ X1))))))) (TEncode.wf_encode_unit,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Encode.wf_encoder @ X0) @ cHOL4.Encode.encode_unit)))) (TEncode.wf_encode_bool,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Encode.wf_encoder @ X0) @ cHOL4.Encode.encode_bool)))) (TEncode.encode_prod_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_prod @ X0) @ X1) @ X2)) @ ((cHOL4.list.APPEND @ (X0 @ (cHOL4.pair.FST @ X2))) @ (X1 @ (cHOL4.pair.SND @ X2))))))))))) (TEncode.wf_encode_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X2)) @ ((cHOL4.Encode.wf_encoder @ X1) @ X3))) @ ((cHOL4.Encode.wf_encoder @ ((cHOL4.Encode.lift_prod @ X0) @ X1)) @ ((cHOL4.Encode.encode_prod @ X2) @ X3)))))))))))) (TEncode.wf_encode_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Encode.wf_encoder @ X0) @ X2)) @ ((cHOL4.Encode.wf_encoder @ X1) @ X3))) @ ((cHOL4.Encode.wf_encoder @ ((cHOL4.Encode.lift_sum @ X0) @ X1)) @ ((cHOL4.Encode.encode_sum @ X2) @ X3)))))))))))) (TEncode.wf_encode_option,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.Encode.wf_encoder @ (cHOL4.Encode.lift_option @ X0)) @ (cHOL4.Encode.encode_option @ X1)))))))) (TEncode.wf_encode_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.Encode.wf_encoder @ (cHOL4.list.EVERY @ X0)) @ (cHOL4.Encode.encode_list @ X1)))))))) (TEncode.encode_list_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.Encode.encode_list @ X2) @ X0)) @ ((cHOL4.Encode.encode_list @ X3) @ X1)))))))))))) (TEncode.encode_blist_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_blist @ cHOL4.num.0) @ X0) @ X1)) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_blist @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X0) @ X1)) @ ((cHOL4.list.APPEND @ (X0 @ (cHOL4.list.HD @ X1))) @ (((cHOL4.Encode.encode_blist @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0) @ (cHOL4.list.TL @ X1))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Encode.encode_blist @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X0) @ X1)) @ ((cHOL4.list.APPEND @ (X0 @ (cHOL4.list.HD @ X1))) @ (((cHOL4.Encode.encode_blist @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X0) @ (cHOL4.list.TL @ X1))))))))))))) (TEncode.lift_blist_suc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Encode.lift_blist @ (cHOL4.num.SUC @ X0)) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (((cHOL4.Encode.lift_blist @ X0) @ X1) @ X3)))))))))))) (TEncode.wf_encode_blist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X1) @ X2)) @ ((cHOL4.Encode.wf_encoder @ ((cHOL4.Encode.lift_blist @ X0) @ X1)) @ ((cHOL4.Encode.encode_blist @ X0) @ X2)))))))))) (TEncode.encode_num_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Encode.encode_num @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ cHOL4.list.NIL))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ (cHOL4.Encode.encode_num @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.list.CONS @ cHOL4.bool.T) @ ((cHOL4.list.CONS @ cHOL4.bool.F) @ (cHOL4.Encode.encode_num @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (TEncode.encode_num_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.arithmetic.EVEN @ X1))) @ (X0 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X1)))) @ (X0 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (TEncode.wf_encode_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Encode.wf_encoder @ X0) @ cHOL4.Encode.encode_num)))) (TEncode.encode_bnum_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_bnum @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_bnum @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X0))) @ ((cHOL4.Encode.encode_bnum @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_bnum @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X0))) @ ((cHOL4.Encode.encode_bnum @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))) (TEncode.wf_pred_bnum_total,(cHOL4.bool.! @ (^[X0]: ((cHOL4.Encode.wf_pred_bnum @ X0) @ (^[X1]: ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))) (TEncode.wf_pred_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_pred_bnum @ X0) @ X1)) @ ((cHOL4.Encode.collision_free @ X0) @ X1))))))) (TEncode.encode_bnum_length,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.Encode.encode_bnum @ X0) @ X1))) @ X0)))))) (TEncode.encode_bnum_inj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.Encode.encode_bnum @ X0) @ X1)) @ ((cHOL4.Encode.encode_bnum @ X0) @ X2))))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (TEncode.wf_encode_bnum_collision_free,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Encode.wf_encoder @ X1) @ (cHOL4.Encode.encode_bnum @ X0))) @ ((cHOL4.Encode.collision_free @ X0) @ X1))))))) (TEncode.wf_encode_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_pred_bnum @ X0) @ X1)) @ ((cHOL4.Encode.wf_encoder @ X1) @ (cHOL4.Encode.encode_bnum @ X0)))))))) (TEncode.datatype_tree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (X0 @ cHOL4.Encode.Node))))) (TEncode.tree_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.Encode.Node @ X0) @ X1)) @ ((cHOL4.Encode.Node @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (TEncode.tree_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ ((cHOL4.Encode.Node @ X4) @ X5))) @ ((cHOL4.min.= @ ((X3 @ X4) @ X5)) @ ((X0 @ X4) @ X5))))))))) @ ((cHOL4.min.= @ ((cHOL4.Encode.tree_CASE @ X1) @ X3)) @ ((cHOL4.Encode.tree_CASE @ X2) @ X0)))))))))))) (TEncode.tree_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.Encode.Node @ X1) @ X2))))))))) (TEncode.tree_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X3 @ ((cHOL4.Encode.Node @ X5) @ X6))) @ (((X0 @ X5) @ X6) @ (X4 @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.list.NIL)) @ X1)) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X4 @ ((cHOL4.list.CONS @ X7) @ X6))) @ ((((X2 @ X7) @ X6) @ (X3 @ X7)) @ (X4 @ X6)))))))))))))))))))) (TEncode.tree_induction,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.Encode.Node @ X3) @ X2)))))))) @ ((cHOL4.bool./\ @ (X1 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (X1 @ X2))) @ (X1 @ ((cHOL4.list.CONS @ X4) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (X0 @ X4)))) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))))))))) (TEncode.tree_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X2))) @ (X0 @ X3))))) @ (X0 @ ((cHOL4.Encode.Node @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (TEncode.encode_tree_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.encode_tree @ X1) @ ((cHOL4.Encode.Node @ X2) @ X0))) @ ((cHOL4.list.APPEND @ (X1 @ X2)) @ ((cHOL4.Encode.encode_list @ (cHOL4.Encode.encode_tree @ X1)) @ X0)))))))))) (TEncode.lift_tree_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Encode.lift_tree @ X1) @ ((cHOL4.Encode.Node @ X2) @ X0))) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.list.EVERY @ (cHOL4.Encode.lift_tree @ X1)) @ X0)))))))))) (TEncode.wf_encode_tree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Encode.wf_encoder @ X0) @ X1)) @ ((cHOL4.Encode.wf_encoder @ (cHOL4.Encode.lift_tree @ X0)) @ (cHOL4.Encode.encode_tree @ X1)))))))) (TEncodeVar.fixed_width_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.EncodeVar.fixed_width @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Coder.domain @ X1) @ X2)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.Coder.encoder @ X1) @ X2))) @ X0)))))))))) (TEncodeVar.of_length_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.EncodeVar.of_length @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ X1))))))) (TEncodeVar.fixed_width_univ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.Coder.wf_coder @ X1)) @ ((cHOL4.EncodeVar.fixed_width @ X2) @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.Coder.domain @ X1) @ X3)) @ (X0 @ X3))))) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.EncodeVar.of_length @ X2)) @ (^[X4]: (X0 @ ((cHOL4.Coder.decoder @ X1) @ X4))))))))))))) (TEncodeVar.of_length_univ_suc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ (cHOL4.EncodeVar.of_length @ (cHOL4.num.SUC @ X1))) @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.RES_FORALL @ (cHOL4.EncodeVar.of_length @ X1)) @ (^[X2]: (X0 @ ((cHOL4.list.CONS @ X3) @ X2)))))))))))) (TEncodeVar.of_length_univ_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ (cHOL4.EncodeVar.of_length @ cHOL4.num.0)) @ (^[X1]: (X0 @ X1)))) @ (X0 @ cHOL4.list.NIL))))) (TEncodeVar.fixed_width_exists,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.Coder.wf_coder @ X1)) @ ((cHOL4.EncodeVar.fixed_width @ X2) @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Coder.domain @ X1) @ X3)) @ (X0 @ X3))))) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.EncodeVar.of_length @ X2)) @ (^[X4]: (X0 @ ((cHOL4.Coder.decoder @ X1) @ X4))))))))))))) (TEncodeVar.of_length_exists_suc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.EncodeVar.of_length @ (cHOL4.num.SUC @ X1))) @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool.RES_EXISTS @ (cHOL4.EncodeVar.of_length @ X1)) @ (^[X2]: (X0 @ ((cHOL4.list.CONS @ X3) @ X2)))))))))))) (TEncodeVar.of_length_exists_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.EncodeVar.of_length @ cHOL4.num.0)) @ (^[X1]: (X0 @ X1)))) @ (X0 @ cHOL4.list.NIL))))) (TEncodeVar.fixed_width_unit,(cHOL4.bool.! @ (^[X0]: ((cHOL4.EncodeVar.fixed_width @ cHOL4.num.0) @ (cHOL4.Coder.unit_coder @ X0))))) (TEncodeVar.fixed_width_bool,(cHOL4.bool.! @ (^[X0]: ((cHOL4.EncodeVar.fixed_width @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.Coder.bool_coder @ X0))))) (TEncodeVar.fixed_width_prod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.EncodeVar.fixed_width @ X2) @ X0)) @ ((cHOL4.EncodeVar.fixed_width @ X3) @ X1))) @ ((cHOL4.EncodeVar.fixed_width @ ((cHOL4.arithmetic.+ @ X2) @ X3)) @ ((cHOL4.Coder.prod_coder @ X0) @ X1)))))))))))) (TEncodeVar.fixed_width_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.EncodeVar.fixed_width @ X2) @ X0)) @ ((cHOL4.EncodeVar.fixed_width @ X2) @ X1))) @ ((cHOL4.EncodeVar.fixed_width @ (cHOL4.num.SUC @ X2)) @ ((cHOL4.Coder.sum_coder @ X0) @ X1)))))))))) (TEncodeVar.fixed_width_bnum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.EncodeVar.fixed_width @ X0) @ ((cHOL4.Coder.bnum_coder @ X0) @ X1))))))) (Tenumeral.bl_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X4]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ ((cHOL4.ind_type.FCONS @ X4) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ X4))) @ (X2 @ X4))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((((^[X5]: (^[X6]: (^[X7]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ ((cHOL4.ind_type.FCONS @ X7) @ (^[X3]: cHOL4.ind_type.BOTTOM)))))) @ X5) @ X6) @ X7))) @ (X2 @ X7))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tenumeral.bl_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bl_CASE @ cHOL4.enumeral.nbl) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bl_CASE @ (cHOL4.enumeral.zerbl @ X3)) @ X0) @ X1) @ X2)) @ (X1 @ X3))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bl_CASE @ (((cHOL4.enumeral.onebl @ X4) @ X5) @ X6)) @ X0) @ X1) @ X2)) @ (((X2 @ X4) @ X5) @ X6))))))))))))))))) (Tenumeral.bl_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_size @ X0) @ cHOL4.enumeral.nbl)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_size @ X0) @ (cHOL4.enumeral.zerbl @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.enumeral.bl_size @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_size @ X0) @ (((cHOL4.enumeral.onebl @ X2) @ X3) @ X4))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X2)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.enumeral.bt_size @ X0) @ X3)) @ ((cHOL4.enumeral.bl_size @ X0) @ X4)))))))))))))))) (Tenumeral.bt_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ cHOL4.bool.ARB) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((((^[X4]: (^[X5]: (^[X6]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ X5) @ ((cHOL4.ind_type.FCONS @ X4) @ ((cHOL4.ind_type.FCONS @ X6) @ (^[X3]: cHOL4.ind_type.BOTTOM))))))) @ X4) @ X5) @ X6))) @ ((cHOL4.bool./\ @ (X2 @ X4)) @ (X2 @ X6))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tenumeral.bt_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_size @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_size @ X0) @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.enumeral.bt_size @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ (X0 @ X2)) @ ((cHOL4.enumeral.bt_size @ X0) @ X3))))))))))))))) (Tenumeral.BL_ACCUM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.BL_ACCUM @ X0) @ X1) @ cHOL4.enumeral.nbl)) @ (((cHOL4.enumeral.onebl @ X0) @ X1) @ cHOL4.enumeral.nbl))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.BL_ACCUM @ X0) @ X1) @ (cHOL4.enumeral.zerbl @ X2))) @ (((cHOL4.enumeral.onebl @ X0) @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.BL_ACCUM @ X0) @ X1) @ (((cHOL4.enumeral.onebl @ X3) @ X4) @ X2))) @ (cHOL4.enumeral.zerbl @ (((cHOL4.enumeral.BL_ACCUM @ X0) @ (((cHOL4.enumeral.node @ X1) @ X3) @ X4)) @ X2)))))))))))))))) (Tenumeral.BL_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.BL_CONS @ X0) @ X1)) @ (((cHOL4.enumeral.BL_ACCUM @ X0) @ cHOL4.enumeral.nt) @ X1))))))) (Tenumeral.list_to_bl,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.enumeral.list_to_bl @ cHOL4.list.NIL)) @ cHOL4.enumeral.nbl)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.enumeral.list_to_bl @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.enumeral.BL_CONS @ X0) @ (cHOL4.enumeral.list_to_bl @ X1))))))))) (Tenumeral.bt_to_list,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.enumeral.bt_to_list @ cHOL4.enumeral.nt)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.enumeral.bt_to_list @ (((cHOL4.enumeral.node @ X0) @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (cHOL4.enumeral.bt_to_list @ X0)) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ (cHOL4.enumeral.bt_to_list @ X2))))))))))) (Tenumeral.bt_to_list_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_to_list_ac @ cHOL4.enumeral.nt) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_to_list_ac @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3)) @ X0)) @ ((cHOL4.enumeral.bt_to_list_ac @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.enumeral.bt_to_list_ac @ X3) @ X0)))))))))))))) (Tenumeral.bt_rev,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_rev @ cHOL4.enumeral.nt) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_rev @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3)) @ X0)) @ ((cHOL4.enumeral.bt_rev @ X1) @ (((cHOL4.enumeral.onebl @ X2) @ X3) @ X0))))))))))))) (Tenumeral.K2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.enumeral.K2 @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Tenumeral.bl_rev,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_rev @ X0) @ cHOL4.enumeral.nbl)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_rev @ X0) @ (cHOL4.enumeral.zerbl @ X1))) @ ((cHOL4.enumeral.bl_rev @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_rev @ X0) @ (((cHOL4.enumeral.onebl @ X2) @ X3) @ X1))) @ ((cHOL4.enumeral.bl_rev @ (((cHOL4.enumeral.node @ X0) @ X2) @ X3)) @ X1))))))))))))) (Tenumeral.bl_to_bt,((cHOL4.min.= @ cHOL4.enumeral.bl_to_bt) @ (cHOL4.enumeral.bl_rev @ cHOL4.enumeral.nt))) (Tenumeral.bt_to_bl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.enumeral.bt_to_bl @ X0)) @ ((cHOL4.enumeral.bt_rev @ X0) @ cHOL4.enumeral.nbl))))) (Tenumeral.list_to_bt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.enumeral.list_to_bt @ X0)) @ (cHOL4.enumeral.bl_to_bt @ (cHOL4.enumeral.list_to_bl @ X0)))))) (Tenumeral.OL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X2))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS)))))))))))))) (Tenumeral.smerge_tupled_primitive,((cHOL4.min.= @ cHOL4.enumeral.smerge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.EQUAL)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X3) @ X1)))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1))))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (((cHOL4.list.list_CASE @ X9) @ (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X3]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.list.CONS @ X3) @ X1)))))) @ (^[X4]: (^[X2]: (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ X4) @ X2))) @ (^[X11]: (^[X12]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X5) @ X4) @ X11)) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X11) @ X12)))))) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ X12))))) @ ((cHOL4.list.CONS @ X11) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X12))))))))))))))))))))))) (Tenumeral.smerge_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ X1) @ X2)) @ (cHOL4.enumeral.smerge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tenumeral.OL_sublists_tupled_primitive,((cHOL4.min.= @ cHOL4.enumeral.OL_sublists_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X1)))))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X2]: (^[X6]: (((cHOL4.list.list_CASE @ X6) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X7]: (^[X1]: (((cHOL4.option.option_CASE @ X7) @ (cHOL4.combin.I @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X1)))) @ (^[X3]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X2) @ X3)) @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X1))))))))))))))))) (Tenumeral.OL_sublists_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL_sublists @ X0) @ X1)) @ (cHOL4.enumeral.OL_sublists_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tenumeral.lol_set_primitive,((cHOL4.min.= @ cHOL4.enumeral.lol_set) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1))))))))))) @ (^[X3]: (^[X4]: (((cHOL4.list.list_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.pred_set.EMPTY)) @ (^[X5]: (^[X1]: (((cHOL4.option.option_CASE @ X5) @ (cHOL4.combin.I @ (X3 @ X1))) @ (^[X2]: (cHOL4.combin.I @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X2)) @ (X3 @ X1))))))))))))) (Tenumeral.incr_smerge_tupled_primitive,((cHOL4.min.= @ cHOL4.enumeral.incr_smerge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.smerge @ X4) @ X3) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1)))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X4]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X3]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ cHOL4.list.NIL))) @ (^[X9]: (^[X1]: (((cHOL4.option.option_CASE @ X9) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X1))) @ (^[X2]: (cHOL4.combin.I @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.smerge @ X4) @ X3) @ X2)) @ X1))))))))))))))))))))) (Tenumeral.incr_smerge_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.incr_smerge @ X0) @ X1) @ X2)) @ (cHOL4.enumeral.incr_smerge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tenumeral.smerge_out_tupled_primitive,((cHOL4.min.= @ cHOL4.enumeral.smerge_out_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.smerge @ X3) @ X2) @ X4)) @ X1))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X4)) @ X1))))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X3]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X2]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ X2)) @ (^[X9]: (^[X1]: (((cHOL4.option.option_CASE @ X9) @ (cHOL4.combin.I @ (X5 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X1))))) @ (^[X4]: (cHOL4.combin.I @ (X5 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.smerge @ X3) @ X2) @ X4)) @ X1)))))))))))))))))))) (Tenumeral.smerge_out_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge_out @ X0) @ X1) @ X2)) @ (cHOL4.enumeral.smerge_out_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tenumeral.incr_sbuild,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.incr_sbuild @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.enumeral.incr_sbuild @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.enumeral.incr_smerge @ X0) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.enumeral.incr_sbuild @ X0) @ X2))))))))))) (Tenumeral.incr_ssort,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.incr_ssort @ X0) @ X1)) @ (((cHOL4.enumeral.smerge_out @ X0) @ cHOL4.list.NIL) @ ((cHOL4.enumeral.incr_sbuild @ X0) @ X1)))))))) (Tenumeral.bt_to_set,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.ENUMERAL @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.pred_set.EMPTY)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.enumeral.ENUMERAL @ X0) @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X2)) @ cHOL4.toto.LESS)))))) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.pred_set.GSPEC @ (^[X5]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X3))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X5)) @ cHOL4.toto.LESS))))))))))))))))) (Tenumeral.bt_to_set_lb,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_set_lb @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))))) (Tenumeral.bt_to_set_ub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_set_ub @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.LESS))))))))))))) (Tenumeral.bt_to_set_lb_ub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_set_lb_ub @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X4)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X3)) @ cHOL4.toto.LESS)))))))))))))))) (Tenumeral.bt_to_ol_lb_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X1) @ cHOL4.enumeral.nt) @ X2)) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X1) @ (((cHOL4.enumeral.node @ X3) @ X4) @ X5)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X4)) @ cHOL4.toto.LESS)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X1) @ X3) @ X4)) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL))) @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X4) @ X5) @ X2))) @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X1) @ X3) @ X2))) @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X1) @ X5) @ X2))))))))))))))))) (Tenumeral.bt_to_ol_lb,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_ol_lb @ X0) @ X1) @ cHOL4.enumeral.nt)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_ol_lb @ X0) @ X1) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))) @ (((cHOL4.enumeral.bt_to_ol_lb @ X0) @ X3) @ X4))) @ (((cHOL4.enumeral.bt_to_ol_lb @ X0) @ X1) @ X4))))))))))))))) (Tenumeral.bt_to_ol_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_ol_ub @ X0) @ cHOL4.enumeral.nt) @ X1)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_ol_ub @ X0) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X1)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (((cHOL4.enumeral.bt_to_ol_ub @ X0) @ X2) @ X3)) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))) @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X3) @ X4) @ X1))) @ (((cHOL4.enumeral.bt_to_ol_ub @ X0) @ X2) @ X1))))))))))))))) (Tenumeral.bt_to_ol,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_to_ol @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_to_ol @ X0) @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (((cHOL4.enumeral.bt_to_ol_ub @ X0) @ X1) @ X2)) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ (((cHOL4.enumeral.bt_to_ol_lb @ X0) @ X2) @ X3))))))))))))) (Tenumeral.bt_to_ol_lb_ub_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X1) @ cHOL4.enumeral.nt) @ X2) @ X3)) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X1) @ (((cHOL4.enumeral.node @ X4) @ X5) @ X6)) @ X2) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X5)) @ cHOL4.toto.LESS)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X5) @ X2)) @ cHOL4.toto.LESS)) @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X1) @ X4) @ X5) @ ((cHOL4.list.CONS @ X5) @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X5) @ X6) @ X2) @ X3)))) @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X1) @ X4) @ X2) @ X3))) @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X1) @ X6) @ X2) @ X3))))))))))))))))))) (Tenumeral.bt_to_ol_lb_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_ol_lb_ac @ X0) @ X1) @ cHOL4.enumeral.nt) @ X2)) @ X2)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_ol_lb_ac @ X0) @ X1) @ (((cHOL4.enumeral.node @ X3) @ X4) @ X5)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X4)) @ cHOL4.toto.LESS)) @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X1) @ X3) @ X4) @ ((cHOL4.list.CONS @ X4) @ ((((cHOL4.enumeral.bt_to_ol_lb_ac @ X0) @ X4) @ X5) @ X2)))) @ ((((cHOL4.enumeral.bt_to_ol_lb_ac @ X0) @ X1) @ X5) @ X2))))))))))))))))) (Tenumeral.bt_to_ol_ub_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_ol_ub_ac @ X0) @ cHOL4.enumeral.nt) @ X1) @ X2)) @ X2)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.bt_to_ol_ub_ac @ X0) @ (((cHOL4.enumeral.node @ X3) @ X4) @ X5)) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X1)) @ cHOL4.toto.LESS)) @ ((((cHOL4.enumeral.bt_to_ol_ub_ac @ X0) @ X3) @ X4) @ ((cHOL4.list.CONS @ X4) @ (((((cHOL4.enumeral.bt_to_ol_lb_ub_ac @ X0) @ X4) @ X5) @ X1) @ X2)))) @ ((((cHOL4.enumeral.bt_to_ol_ub_ac @ X0) @ X3) @ X1) @ X2))))))))))))))))) (Tenumeral.bt_to_ol_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_ol_ac @ X0) @ cHOL4.enumeral.nt) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_to_ol_ac @ X0) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4)) @ X1)) @ ((((cHOL4.enumeral.bt_to_ol_ub_ac @ X0) @ X2) @ X3) @ ((cHOL4.list.CONS @ X3) @ ((((cHOL4.enumeral.bt_to_ol_lb_ac @ X0) @ X3) @ X4) @ X1)))))))))))))))) (Tenumeral.OWL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.OWL @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.list.LIST_TO_SET @ X2))) @ ((cHOL4.enumeral.OL @ X0) @ X2)))))))))) (Tenumeral.OU,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.OU @ X0) @ X1) @ X2)) @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X4)) @ cHOL4.toto.LESS))))))))) @ X2))))))))) (Tenumeral.UO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.UO @ X0) @ X1) @ X2)) @ ((cHOL4.pred_set.UNION @ X1) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X3)) @ cHOL4.toto.LESS))))))))))))))))) (Tenumeral.LESS_ALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS)))))))))))) (Tenumeral.bl_to_set,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_to_set @ X0) @ cHOL4.enumeral.nbl)) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_to_set @ X0) @ (cHOL4.enumeral.zerbl @ X1))) @ ((cHOL4.enumeral.bl_to_set @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.bl_to_set @ X0) @ (((cHOL4.enumeral.onebl @ X2) @ X3) @ X1))) @ (((cHOL4.enumeral.OU @ X0) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X3))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X4)) @ cHOL4.toto.LESS))))))) @ ((cHOL4.enumeral.bl_to_set @ X0) @ X1)))))))))))))) (Tenumeral.sinter_tupled_primitive,((cHOL4.min.= @ cHOL4.enumeral.sinter_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.EQUAL)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X3) @ X1)))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1))))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X4]: (^[X2]: (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X3]: (^[X1]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X3) @ X1))))) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ X1))))) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X1)))))))))))))))))))))) (Tenumeral.sinter_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.sinter @ X0) @ X1) @ X2)) @ (cHOL4.enumeral.sinter_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tenumeral.sdiff_tupled_primitive,((cHOL4.min.= @ cHOL4.enumeral.sdiff_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.EQUAL)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X3) @ X1)))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1))))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X4]: (^[X2]: (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ X4) @ X2))) @ (^[X3]: (^[X1]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X5) @ X4) @ X3)) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X3) @ X1)))))) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ X1)))) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X1)))))))))))))))))))))) (Tenumeral.sdiff_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.enumeral.sdiff @ X0) @ X1) @ X2)) @ (cHOL4.enumeral.sdiff_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tenumeral.OL_bt_lb_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.OL_bt_lb_ub @ X0) @ X1) @ cHOL4.enumeral.nt) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.enumeral.OL_bt_lb_ub @ X0) @ X1) @ (((cHOL4.enumeral.node @ X3) @ X4) @ X5)) @ X2)) @ ((cHOL4.bool./\ @ ((((cHOL4.enumeral.OL_bt_lb_ub @ X0) @ X1) @ X3) @ X4)) @ ((((cHOL4.enumeral.OL_bt_lb_ub @ X0) @ X4) @ X5) @ X2))))))))))))))))) (Tenumeral.OL_bt_lb,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.OL_bt_lb @ X0) @ X1) @ cHOL4.enumeral.nt)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.enumeral.OL_bt_lb @ X0) @ X1) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((((cHOL4.enumeral.OL_bt_lb_ub @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.enumeral.OL_bt_lb @ X0) @ X3) @ X4))))))))))))))) (Tenumeral.OL_bt_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.OL_bt_ub @ X0) @ cHOL4.enumeral.nt) @ X1)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.OL_bt_ub @ X0) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4)) @ X1)) @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.OL_bt_ub @ X0) @ X2) @ X3)) @ ((((cHOL4.enumeral.OL_bt_lb_ub @ X0) @ X3) @ X4) @ X1))))))))))))))) (Tenumeral.OL_bt,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL_bt @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL_bt @ X0) @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.OL_bt_ub @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.OL_bt_lb @ X0) @ X2) @ X3))))))))))))) (Tenumeral.bt_distinct,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.enumeral.nt) @ (((cHOL4.enumeral.node @ X2) @ X1) @ X0)))))))))) (Tenumeral.bt_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ cHOL4.enumeral.nt)) @ ((cHOL4.min.= @ X4) @ X0))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (((cHOL4.enumeral.node @ X6) @ X7) @ X8))) @ ((cHOL4.min.= @ (((X5 @ X6) @ X7) @ X8)) @ (((X1 @ X6) @ X7) @ X8)))))))))))) @ ((cHOL4.min.= @ (((cHOL4.enumeral.bt_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.enumeral.bt_CASE @ X3) @ X0) @ X1)))))))))))))))) (Tenumeral.bt_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.enumeral.nt)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3)))))))))))) (Tenumeral.bt_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.enumeral.nt)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (X2 @ (((cHOL4.enumeral.node @ X3) @ X4) @ X5))) @ (((((X1 @ X4) @ X3) @ X5) @ (X2 @ X3)) @ (X2 @ X5))))))))))))))))) (Tenumeral.bt_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.enumeral.nt)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ (((cHOL4.enumeral.node @ X1) @ X3) @ X2))))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tenumeral.datatype_bl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.enumeral.nbl) @ cHOL4.enumeral.zerbl) @ cHOL4.enumeral.onebl))))) (Tenumeral.bl_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.enumeral.zerbl @ X0)) @ (cHOL4.enumeral.zerbl @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.enumeral.onebl @ X2) @ X3) @ X4)) @ (((cHOL4.enumeral.onebl @ X5) @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X6)) @ ((cHOL4.min.= @ X4) @ X7)))))))))))))))))) (Tenumeral.bl_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.enumeral.nbl) @ (cHOL4.enumeral.zerbl @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.enumeral.nbl) @ (((cHOL4.enumeral.onebl @ X3) @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.enumeral.zerbl @ X0)) @ (((cHOL4.enumeral.onebl @ X3) @ X2) @ X1)))))))))))))) (Tenumeral.bl_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.enumeral.nbl)) @ ((cHOL4.min.= @ X5) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.enumeral.zerbl @ X8))) @ ((cHOL4.min.= @ (X6 @ X8)) @ (X2 @ X8)))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (((cHOL4.enumeral.onebl @ X9) @ X10) @ X11))) @ ((cHOL4.min.= @ (((X7 @ X9) @ X10) @ X11)) @ (((X1 @ X9) @ X10) @ X11))))))))))))) @ ((cHOL4.min.= @ ((((cHOL4.enumeral.bl_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.enumeral.bl_CASE @ X4) @ X0) @ X2) @ X1)))))))))))))))))))) (Tenumeral.bl_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.enumeral.nbl)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.enumeral.zerbl @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (((cHOL4.enumeral.onebl @ X2) @ X3) @ X1))))))))))))) (Tenumeral.bl_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.enumeral.nbl)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.enumeral.zerbl @ X4))) @ ((X1 @ X4) @ (X3 @ X4)))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ (X3 @ (((cHOL4.enumeral.onebl @ X5) @ X6) @ X7))) @ ((((X2 @ X5) @ X6) @ X7) @ (X3 @ X7)))))))))))))))))))) (Tenumeral.bl_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.enumeral.nbl)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.enumeral.zerbl @ X1)))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ (((cHOL4.enumeral.onebl @ X3) @ X2) @ X1)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tenumeral.bt_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.enumeral.node @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.node @ X3) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X4)) @ ((cHOL4.min.= @ X2) @ X5))))))))))))))))) (Tenumeral.datatype_bt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((X0 @ cHOL4.enumeral.nt) @ cHOL4.enumeral.node))))) (Tenumeral.bt_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_CASE @ cHOL4.enumeral.nt) @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.bt_CASE @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4)) @ X0) @ X1)) @ (((X1 @ X2) @ X3) @ X4)))))))))))))) (Tenumeral.bt_to_list_thm,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.enumeral.bt_to_list @ X0)) @ ((cHOL4.enumeral.bt_to_list_ac @ X0) @ cHOL4.list.NIL))))) (Tenumeral.smerge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((X0 @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ cHOL4.list.NIL)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X4) @ X5))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.EQUAL)) @ (((X0 @ X1) @ X3) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.GREATER)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (Tenumeral.smerge,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X1) @ X2))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((cHOL4.list.CONS @ X3) @ X4))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ ((cHOL4.list.CONS @ X1) @ (((cHOL4.enumeral.smerge @ X0) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))) @ ((cHOL4.list.CONS @ X1) @ (((cHOL4.enumeral.smerge @ X0) @ X2) @ X4))) @ ((cHOL4.list.CONS @ X3) @ (((cHOL4.enumeral.smerge @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ X4)))))))))))))))))) (Tenumeral.smerge_nil,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ X1) @ cHOL4.list.NIL)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.enumeral.smerge @ X0) @ cHOL4.list.NIL) @ X1)) @ X1))))))) (Tenumeral.smerge_OL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X0) @ X1)) @ ((cHOL4.enumeral.OL @ X0) @ X2))) @ ((cHOL4.enumeral.OL @ X0) @ (((cHOL4.enumeral.smerge @ X0) @ X1) @ X2)))))))))) (Tenumeral.OL_sublists_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X4) @ X5))))))))) (Tenumeral.OL_sublists,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL_sublists @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL_sublists @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))) @ ((cHOL4.enumeral.OL_sublists @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.enumeral.OL_sublists @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ ((cHOL4.enumeral.OL_sublists @ X0) @ X1)))))))))))) (Tenumeral.lol_set_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tenumeral.lol_set,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.enumeral.lol_set @ cHOL4.list.NIL)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.enumeral.lol_set @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X0))) @ (cHOL4.enumeral.lol_set @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.enumeral.lol_set @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X1)) @ X0))) @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X1)) @ (cHOL4.enumeral.lol_set @ X0)))))))))) (Tenumeral.incr_smerge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X3))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ (((cHOL4.enumeral.smerge @ X1) @ X2) @ X4)) @ X3)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X4)) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (((X0 @ X5) @ X6) @ X7))))))))))) (Tenumeral.incr_smerge,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.incr_smerge @ X1) @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X0)) @ cHOL4.list.NIL))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.incr_smerge @ X1) @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2))) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X0)) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.incr_smerge @ X1) @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2))) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ (((cHOL4.enumeral.incr_smerge @ X1) @ (((cHOL4.enumeral.smerge @ X1) @ X0) @ X3)) @ X2)))))))))))))) (Tenumeral.incr_smerge_OL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL_sublists @ X0) @ X1)) @ ((cHOL4.enumeral.OL @ X0) @ X2))) @ ((cHOL4.enumeral.OL_sublists @ X0) @ (((cHOL4.enumeral.incr_smerge @ X0) @ X2) @ X1)))))))))) (Tenumeral.smerge_out_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X3)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ (((cHOL4.enumeral.smerge @ X1) @ X2) @ X4)) @ X3)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X4)) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (((X0 @ X5) @ X6) @ X7))))))))))) (Tenumeral.smerge_out,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge_out @ X1) @ X0) @ cHOL4.list.NIL)) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge_out @ X1) @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2))) @ (((cHOL4.enumeral.smerge_out @ X1) @ X0) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.smerge_out @ X1) @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2))) @ (((cHOL4.enumeral.smerge_out @ X1) @ (((cHOL4.enumeral.smerge @ X1) @ X0) @ X3)) @ X2))))))))))))) (Tenumeral.IN_bt_to_set,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ cHOL4.enumeral.nt))) @ cHOL4.bool.F)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X4))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X1)) @ cHOL4.toto.LESS))))))))))))))))) (Tenumeral.NOT_IN_nt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ cHOL4.enumeral.nt))) @ cHOL4.bool.F)))))) (Tenumeral.IN_node,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ (((cHOL4.enumeral.node @ X2) @ X3) @ X4)))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X2))) @ cHOL4.bool.T) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X4))))))))))))))) (Tenumeral.ol_set,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X1)) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.enumeral.bt_to_ol @ X0) @ X1)))))))) (Tenumeral.OL_bt_to_ol_lb_ub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.enumeral.OL @ X0) @ ((((cHOL4.enumeral.bt_to_ol_lb_ub @ X0) @ X2) @ X1) @ X3))))))))))) (Tenumeral.OL_bt_to_ol_lb,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.enumeral.OL @ X0) @ (((cHOL4.enumeral.bt_to_ol_lb @ X0) @ X2) @ X1))))))))) (Tenumeral.OL_bt_to_ol_ub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.enumeral.OL @ X0) @ (((cHOL4.enumeral.bt_to_ol_ub @ X0) @ X1) @ X2))))))))) (Tenumeral.OL_bt_to_ol,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.enumeral.OL @ X0) @ ((cHOL4.enumeral.bt_to_ol @ X0) @ X1))))))) (Tenumeral.OWL_bt_to_ol,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.enumeral.OWL @ X0) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ X1)) @ ((cHOL4.enumeral.bt_to_ol @ X0) @ X1))))))) (Tenumeral.EMPTY_OU,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.OU @ X0) @ cHOL4.pred_set.EMPTY) @ X1)) @ X1)))))) (Tenumeral.OU_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.enumeral.OU @ X0) @ X1) @ cHOL4.pred_set.EMPTY)) @ X1)))))) (Tenumeral.LESS_UO_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (((cHOL4.enumeral.UO @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ X3))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X4)) @ cHOL4.toto.LESS))))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.LESS))))))))))) (Tenumeral.LESS_ALL_OU,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ (((cHOL4.enumeral.OU @ X0) @ X2) @ X3))) @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ X3)))))))))))) (Tenumeral.OU_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.enumeral.OU @ X0) @ X1) @ (((cHOL4.enumeral.OU @ X0) @ X2) @ X3))) @ (((cHOL4.enumeral.OU @ X0) @ (((cHOL4.enumeral.OU @ X0) @ X1) @ X2)) @ X3))))))))))) (Tenumeral.LESS_ALL_UO_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.enumeral.UO @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ X2)) @ ((cHOL4.pred_set.INSERT @ X1) @ X2)))))))))) (Tenumeral.LESS_ALL_OU_UO_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X1) @ X3))) @ ((cHOL4.min.= @ (((cHOL4.enumeral.OU @ X0) @ (((cHOL4.enumeral.UO @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ X2)) @ X3)) @ ((cHOL4.pred_set.INSERT @ X1) @ (((cHOL4.enumeral.OU @ X0) @ X2) @ X3))))))))))))) (Tenumeral.bt_to_ol_ID_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.enumeral.bt_to_ol @ X0) @ (cHOL4.enumeral.list_to_bt @ X1))) @ X1))))))) (Tenumeral.OL_UNION_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X0) @ (((cHOL4.enumeral.smerge @ X0) @ X1) @ X2))) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (((cHOL4.enumeral.smerge @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X1)) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))))) (Tenumeral.sinter_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((X0 @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ cHOL4.list.NIL)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X4) @ X5))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.EQUAL)) @ (((X0 @ X1) @ X3) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.GREATER)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (Tenumeral.sinter,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sinter @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sinter @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sinter @ X0) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X4))) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sinter @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ (((cHOL4.enumeral.sinter @ X0) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((cHOL4.list.CONS @ X1) @ (((cHOL4.enumeral.sinter @ X0) @ X2) @ X4))) @ (((cHOL4.enumeral.sinter @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ X4))))))))))))))))) (Tenumeral.OL_INTER_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X0) @ (((cHOL4.enumeral.sinter @ X0) @ X1) @ X2))) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (((cHOL4.enumeral.sinter @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ (cHOL4.list.LIST_TO_SET @ X1)) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))))) (Tenumeral.sdiff_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((X0 @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ cHOL4.list.NIL)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X4) @ X5))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.EQUAL)) @ (((X0 @ X1) @ X3) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.GREATER)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (Tenumeral.sdiff,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sdiff @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sdiff @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X1) @ X2))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sdiff @ X0) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X4))) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.enumeral.sdiff @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ ((cHOL4.list.CONS @ X1) @ (((cHOL4.enumeral.sdiff @ X0) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))) @ (((cHOL4.enumeral.sdiff @ X0) @ X2) @ X4)) @ (((cHOL4.enumeral.sdiff @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)) @ X4))))))))))))))))) (Tenumeral.OL_DIFF_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.enumeral.OL @ X0) @ (((cHOL4.enumeral.sdiff @ X0) @ X1) @ X2))) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (((cHOL4.enumeral.sdiff @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.DIFF @ (cHOL4.list.LIST_TO_SET @ X1)) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))))) (Tenumeral.ENUMERAL_set,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ X1)) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ (cHOL4.enumeral.list_to_bt @ ((cHOL4.enumeral.incr_ssort @ X0) @ X1))))))))) (Tenumeral.OL_ENUMERAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ X1)) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ (cHOL4.enumeral.list_to_bt @ X1))))))))) (Tenumeral.OWL_UNION_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.OWL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.OWL @ X0) @ X3) @ X4))) @ (((cHOL4.enumeral.OWL @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X3)) @ (((cHOL4.enumeral.smerge @ X0) @ X2) @ X4)))))))))))))) (Tenumeral.OWL_INTER_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.OWL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.OWL @ X0) @ X3) @ X4))) @ (((cHOL4.enumeral.OWL @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X3)) @ (((cHOL4.enumeral.sinter @ X0) @ X2) @ X4)))))))))))))) (Tenumeral.OWL_DIFF_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.enumeral.OWL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.OWL @ X0) @ X3) @ X4))) @ (((cHOL4.enumeral.OWL @ X0) @ ((cHOL4.pred_set.DIFF @ X1) @ X3)) @ (((cHOL4.enumeral.sdiff @ X0) @ X2) @ X4)))))))))))))) (Tenumeral.better_bt_to_ol,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.enumeral.bt_to_ol @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.enumeral.OL_bt @ X0) @ X1)) @ ((cHOL4.enumeral.bt_to_list_ac @ X1) @ cHOL4.list.NIL)) @ (((cHOL4.enumeral.bt_to_ol_ac @ X0) @ X1) @ cHOL4.list.NIL)))))))) (Tenumeral.set_OWL_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.enumeral.OWL @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)) @ ((cHOL4.enumeral.incr_ssort @ X0) @ X1))))))) (Textended_emit.BAG_VAL_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extended_emit.BAG_VAL @ X0) @ X1)) @ (X0 @ X1))))))) (Textended_emit.llcases_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ (((cHOL4.extended_emit.llcases @ X0) @ X1) @ X2)) @ X0))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.llist.LCONS @ X3) @ X4))) @ ((cHOL4.min.= @ (((cHOL4.extended_emit.llcases @ X0) @ X1) @ X2)) @ (X1 @ ((cHOL4.pair.|comma| @ X3) @ X4)))))))))))))))) (Textended_emit.LLCONS_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extended_emit.LLCONS @ X0) @ X1)) @ ((cHOL4.llist.LCONS @ X0) @ (X1 @ cHOL4.one.one)))))))) (Textended_emit.BAG_DIFF_EQNS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X0) @ cHOL4.bag.EMPTY_BAG)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ cHOL4.bag.EMPTY_BAG) @ X0)) @ cHOL4.bag.EMPTY_BAG)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_INSERT @ X1) @ X0)) @ ((cHOL4.bag.BAG_INSERT @ X2) @ cHOL4.bag.EMPTY_BAG))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ X0) @ ((cHOL4.bag.BAG_INSERT @ X1) @ ((cHOL4.bag.BAG_DIFF @ X0) @ ((cHOL4.bag.BAG_INSERT @ X2) @ cHOL4.bag.EMPTY_BAG)))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_DIFF @ X3) @ ((cHOL4.bag.BAG_INSERT @ X2) @ X4))) @ ((cHOL4.bag.BAG_DIFF @ ((cHOL4.bag.BAG_DIFF @ X3) @ ((cHOL4.bag.BAG_INSERT @ X2) @ cHOL4.bag.EMPTY_BAG))) @ X4)))))))))))) (Textended_emit.BAG_INTER_EQNS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INTER @ cHOL4.bag.EMPTY_BAG) @ X0)) @ cHOL4.bag.EMPTY_BAG)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INTER @ X0) @ cHOL4.bag.EMPTY_BAG)) @ cHOL4.bag.EMPTY_BAG)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_INTER @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2)) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bag.BAG_IN @ X1) @ X3)) @ ((cHOL4.bag.BAG_INSERT @ X1) @ ((cHOL4.bag.BAG_INTER @ X2) @ ((cHOL4.bag.BAG_DIFF @ X3) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG))))) @ ((cHOL4.bag.BAG_INTER @ X2) @ X3)))))))))))) (Textended_emit.BAG_MERGE_EQNS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_MERGE @ cHOL4.bag.EMPTY_BAG) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_MERGE @ X0) @ cHOL4.bag.EMPTY_BAG)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bag.BAG_MERGE @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2)) @ X3)) @ ((cHOL4.bag.BAG_INSERT @ X1) @ ((cHOL4.bag.BAG_MERGE @ X2) @ ((cHOL4.bag.BAG_DIFF @ X3) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG)))))))))))))) (Textended_emit.SUB_BAG_EQNS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ cHOL4.bag.EMPTY_BAG) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bag.SUB_BAG @ ((cHOL4.bag.BAG_INSERT @ X1) @ X2)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bag.BAG_IN @ X1) @ X3)) @ ((cHOL4.bag.SUB_BAG @ X2) @ ((cHOL4.bag.BAG_DIFF @ X3) @ ((cHOL4.bag.BAG_INSERT @ X1) @ cHOL4.bag.EMPTY_BAG))))))))))))) (Textreal.mono_decreasing_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.mono_decreasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X0 @ X1))))))))))) (Textreal.mono_increasing_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.mono_increasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.real.real_lte @ (X0 @ X1)) @ (X0 @ X2))))))))))) (Textreal.extreal_sqrt_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_sqrt @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ (cHOL4.transc.sqrt @ X0)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sqrt @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf))) (Textreal.extreal_pow_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ (cHOL4.extreal.Normal @ ((cHOL4.real.pow @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ cHOL4.extreal.PosInf) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.extreal.PosInf))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ cHOL4.extreal.NegInf) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)))))))) (Textreal.extreal_exp_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_exp @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ (cHOL4.transc.exp @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_exp @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_exp @ cHOL4.extreal.NegInf)) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Textreal.extreal_lg_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_lg @ X0)) @ ((cHOL4.extreal.extreal_logr @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Textreal.extreal_logr_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_logr @ X0) @ (cHOL4.extreal.Normal @ X1))) @ (cHOL4.extreal.Normal @ ((cHOL4.util_prob.logr @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_logr @ X0) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_logr @ X0) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.NegInf)))))) (Textreal.extreal_abs_primitive_def,((cHOL4.min.= @ cHOL4.extreal.extreal_abs) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((((cHOL4.extreal.extreal_CASE @ X2) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (^[X3]: (cHOL4.combin.I @ (cHOL4.extreal.Normal @ (cHOL4.real.abs @ X3)))))))))) (Textreal.extreal_div_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_div @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X0) @ (cHOL4.extreal.extreal_inv @ X1)))))))) (Textreal.extreal_ainv_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.NegInf)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ (cHOL4.realax.real_neg @ X0)))))))) (Textreal.extreal_inv_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inv @ cHOL4.extreal.NegInf)) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inv @ cHOL4.extreal.PosInf)) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_inv @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ (cHOL4.realax.inv @ X0)))))))) (Textreal.extreal_mul_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_mul_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Textreal.extreal_mul_tupled_primitive_def,((cHOL4.min.= @ cHOL4.extreal.extreal_mul_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((((cHOL4.extreal.extreal_CASE @ X3) @ ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (cHOL4.combin.I @ cHOL4.extreal.NegInf)) @ (^[X5]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)))))) @ ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.extreal.NegInf)) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (^[X6]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X6) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X6)) @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)))))) @ (^[X7]: ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X7) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X7)) @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)))) @ (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X7) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X7)) @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)))) @ (^[X8]: (cHOL4.combin.I @ (cHOL4.extreal.Normal @ ((cHOL4.realax.real_mul @ X7) @ X8))))))))))))))) (Textreal.extreal_lt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.extreal.extreal_le @ X1) @ X0)))))))) (Textreal.extreal_le_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ (cHOL4.extreal.extreal_le_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Textreal.extreal_le_tupled_primitive_def,((cHOL4.min.= @ cHOL4.extreal.extreal_le_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((((cHOL4.extreal.extreal_CASE @ X3) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.bool.F)) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X5]: (cHOL4.combin.I @ cHOL4.bool.F)))) @ (^[X6]: ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.bool.F)) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X7]: (cHOL4.combin.I @ ((cHOL4.real.real_lte @ X6) @ X7)))))))))))))) (Textreal.extreal_sub_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ (cHOL4.extreal.extreal_sub_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Textreal.extreal_sub_tupled_primitive_def,((cHOL4.min.= @ cHOL4.extreal.extreal_sub_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((((cHOL4.extreal.extreal_CASE @ X3) @ ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (cHOL4.combin.I @ cHOL4.extreal.NegInf)) @ (^[X5]: (cHOL4.combin.I @ cHOL4.extreal.NegInf)))) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (^[X6]: ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (cHOL4.combin.I @ cHOL4.extreal.NegInf)) @ (^[X7]: (cHOL4.combin.I @ (cHOL4.extreal.Normal @ ((cHOL4.real.real_sub @ X6) @ X7))))))))))))))) (Textreal.extreal_add_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ (cHOL4.extreal.extreal_add_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Textreal.extreal_add_tupled_primitive_def,((cHOL4.min.= @ cHOL4.extreal.extreal_add_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((((cHOL4.extreal.extreal_CASE @ X3) @ ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.extreal.NegInf)) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (^[X5]: (cHOL4.combin.I @ cHOL4.extreal.NegInf)))) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (^[X6]: ((((cHOL4.extreal.extreal_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.extreal.NegInf)) @ (cHOL4.combin.I @ cHOL4.extreal.PosInf)) @ (^[X7]: (cHOL4.combin.I @ (cHOL4.extreal.Normal @ ((cHOL4.realax.real_add @ X6) @ X7))))))))))))))) (Textreal.real_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.real @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.extreal.Normal @ X1))))))))) (Textreal.extreal_of_num_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_of_num @ X0)) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ X0)))))) (Textreal.extreal_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ cHOL4.bool.ARB) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ cHOL4.bool.ARB) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((^[X4]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ X4) @ (^[X3]: cHOL4.ind_type.BOTTOM))) @ X4))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Textreal.extreal_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.extreal.extreal_CASE @ cHOL4.extreal.NegInf) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.extreal.extreal_CASE @ cHOL4.extreal.PosInf) @ X0) @ X1) @ X2)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.extreal.extreal_CASE @ (cHOL4.extreal.Normal @ X3)) @ X0) @ X1) @ X2)) @ (X2 @ X3))))))))))))) (Textreal.extreal_size_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_size @ cHOL4.extreal.NegInf)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_size @ cHOL4.extreal.PosInf)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_size @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Textreal.ext_mono_increasing_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.ext_mono_increasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ (X0 @ X1)) @ (X0 @ X2))))))))))) (Textreal.ext_mono_decreasing_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.ext_mono_decreasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ (X0 @ X2)) @ (X0 @ X1))))))))))) (Textreal.EXTREAL_SUM_IMAGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ (((cHOL4.pred_set.ITSET @ (^[X2]: (^[X3]: ((cHOL4.extreal.extreal_add @ (X0 @ X2)) @ X3)))) @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.extreal_sup_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X2) @ X1))))) @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))))) @ cHOL4.extreal.PosInf) @ (((cHOL4.bool.COND @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))))) @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ (cHOL4.real.sup @ (^[X3]: (X0 @ (cHOL4.extreal.Normal @ X3))))))))))) (Textreal.extreal_inf_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ X0)) @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ cHOL4.extreal.extreal_ainv) @ X0))))))) (Textreal.ext_suminf_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ X0)) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X1]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ X1)))) @ cHOL4.pred_set.UNIV)))))) (Textreal.extreal_min_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ X0) @ X1))))))) (Textreal.extreal_max_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ X1) @ X0))))))) (Textreal.Q_set_def,((cHOL4.min.= @ cHOL4.extreal.Q_set) @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.GSPEC @ (^[X0]: ((cHOL4.pair.|comma| @ X0) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X1)) @ (cHOL4.extreal.extreal_of_num @ X2)))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ X2))))))))))) @ (cHOL4.pred_set.GSPEC @ (^[X0]: ((cHOL4.pair.|comma| @ X0) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.extreal.extreal_ainv @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X1)) @ (cHOL4.extreal.extreal_of_num @ X2))))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ X2))))))))))))) (Textreal.ceiling_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.ceiling @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ X1)))))))) (Textreal.open_interval_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.open_interval @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X1))))))))))) (Textreal.open_intervals_set_def,((cHOL4.min.= @ cHOL4.extreal.open_intervals_set) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X0]: (^[X1]: ((cHOL4.pair.|comma| @ ((cHOL4.extreal.open_interval @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool.IN @ X1) @ cHOL4.pred_set.UNIV))))))))) (Textreal.rational_intervals_def,((cHOL4.min.= @ cHOL4.extreal.rational_intervals) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X0]: (^[X1]: ((cHOL4.pair.|comma| @ ((cHOL4.extreal.open_interval @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ X1) @ cHOL4.extreal.Q_set))))))))) (Textreal.num_not_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_of_num @ X0)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_of_num @ X0)) @ cHOL4.extreal.PosInf)))))) (Textreal.extreal_not_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ X0)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ X0)) @ cHOL4.extreal.PosInf)))))) (Textreal.extreal_eq_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Textreal.extreal_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.extreal.Normal @ X1))))))))) (Textreal.mono_increasing_converges_to_sup,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.extreal.mono_increasing @ X0)) @ ((cHOL4.seq.--> @ X0) @ X1))) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.sup @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))))))))) (Textreal.mono_decreasing_suc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.mono_decreasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ X1)))))))) (Textreal.mono_increasing_suc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.mono_increasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1))))))))) (Textreal.LOGR_MONO_LE_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ ((cHOL4.real.real_lte @ ((cHOL4.util_prob.logr @ X2) @ X0)) @ ((cHOL4.util_prob.logr @ X2) @ X1)))))))))) (Textreal.LOGR_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.util_prob.logr @ X2) @ X0)) @ ((cHOL4.util_prob.logr @ X2) @ X1))) @ ((cHOL4.real.real_lte @ X0) @ X1)))))))))) (Textreal.POW_NEG_ODD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real.pow @ X1) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.arithmetic.ODD @ X0)))))))) (Textreal.POW_POS_EVEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ X1) @ X0))) @ (cHOL4.arithmetic.EVEN @ X0)))))))) (Textreal.REAL_LE_RDIV_EQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ X1) @ X2)) @ X0)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ X1)))))))))) (Textreal.REAL_LT_RDIV_EQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X1) @ X2)) @ X0)) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ X1)))))))))) (Textreal.REAL_LT_RMUL_NEG_0_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))))) (Textreal.REAL_LT_LMUL_NEG_0_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))))))) (Textreal.REAL_LT_RMUL_NEG_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Textreal.REAL_LT_LMUL_NEG_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Textreal.REAL_LT_RMUL_0_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Textreal.REAL_LT_LMUL_0_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Textreal.extreal_abs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_abs @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.abs @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_abs @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_abs @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)))))) (Textreal.extreal_abs_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.extreal.Normal @ X1))))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.extreal.NegInf)) @ (X0 @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Textreal.extreal_mul_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.NegInf) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.PosInf) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ cHOL4.extreal.NegInf)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ cHOL4.extreal.PosInf)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.PosInf) @ (cHOL4.extreal.Normal @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.Normal @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ ((cHOL4.realax.real_mul @ X1) @ X0)))))))))))))))) (Textreal.extreal_mul_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.PosInf) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.extreal.Normal @ X1)) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X0 @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.extreal.Normal @ X1)) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X0 @ cHOL4.extreal.PosInf) @ (cHOL4.extreal.Normal @ X2))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X2))))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Textreal.extreal_le_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X0))) @ ((cHOL4.real.real_lte @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ cHOL4.extreal.NegInf) @ X5)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ cHOL4.extreal.PosInf) @ cHOL4.extreal.PosInf)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.Normal @ X4)) @ cHOL4.extreal.PosInf)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.Normal @ X3)) @ cHOL4.extreal.NegInf)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ cHOL4.extreal.PosInf) @ (cHOL4.extreal.Normal @ X2))) @ cHOL4.bool.F)))))))))))))))))))) (Textreal.extreal_le_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((X0 @ cHOL4.extreal.NegInf) @ X3)))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.PosInf) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((X0 @ (cHOL4.extreal.Normal @ X4)) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.PosInf) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((X0 @ (cHOL4.extreal.Normal @ X5)) @ cHOL4.extreal.NegInf)))) @ (cHOL4.bool.! @ (^[X6]: ((X0 @ cHOL4.extreal.PosInf) @ (cHOL4.extreal.Normal @ X6))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Textreal.extreal_sub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ ((cHOL4.real.real_sub @ X1) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ cHOL4.extreal.PosInf) @ X5)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X4)) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ cHOL4.extreal.NegInf) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X2))) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X3)) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.PosInf)))))))))))))))))))) (Textreal.extreal_sub_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((X0 @ cHOL4.extreal.PosInf) @ X3)))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((X0 @ (cHOL4.extreal.Normal @ X4)) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((X0 @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X5))))) @ (cHOL4.bool.! @ (^[X6]: ((X0 @ (cHOL4.extreal.Normal @ X6)) @ cHOL4.extreal.NegInf)))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Textreal.extreal_add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X0))) @ (cHOL4.extreal.Normal @ ((cHOL4.realax.real_add @ X1) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ cHOL4.extreal.PosInf) @ X5)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.Normal @ X4)) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ cHOL4.extreal.NegInf) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X2))) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.Normal @ X3)) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.NegInf)))))))))))))))))))) (Textreal.extreal_add_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.Normal @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((X0 @ cHOL4.extreal.PosInf) @ X3)))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((X0 @ (cHOL4.extreal.Normal @ X4)) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((X0 @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X5))))) @ (cHOL4.bool.! @ (^[X6]: ((X0 @ (cHOL4.extreal.Normal @ X6)) @ cHOL4.extreal.NegInf)))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Textreal.normal_real,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ (cHOL4.extreal.real @ X0))) @ X0))))) (Textreal.real_normal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.real @ (cHOL4.extreal.Normal @ X0))) @ X0)))) (Textreal.extreal_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.extreal.PosInf)) @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.extreal.Normal @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Textreal.extreal_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.extreal.NegInf)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.extreal.PosInf)) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.extreal.Normal @ X4))) @ (X2 @ X4))))))))))))))) (Textreal.extreal_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.extreal.Normal @ X1))))))))) (Textreal.extreal_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ X5) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.extreal.PosInf)) @ ((cHOL4.min.= @ X6) @ X0))) @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.extreal.Normal @ X8))) @ ((cHOL4.min.= @ (X7 @ X8)) @ (X2 @ X8))))))))) @ ((cHOL4.min.= @ ((((cHOL4.extreal.extreal_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.extreal.extreal_CASE @ X4) @ X1) @ X0) @ X2)))))))))))))))))))) (Textreal.extreal_distinct,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.extreal.PosInf) @ (cHOL4.extreal.Normal @ X0)))))))) (Textreal.datatype_extreal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf) @ cHOL4.extreal.Normal))))) (Textreal.extreal_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ X0)) @ (cHOL4.extreal.Normal @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Textreal.mul_rzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) (Textreal.mul_lzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) (Textreal.mul_rone,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Textreal.mul_lone,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (Textreal.entire,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))))) (Textreal.extreal_lt_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.Normal @ X0)) @ (cHOL4.extreal.Normal @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ X1))))))) (Textreal.le_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.extreal.extreal_le @ X0) @ X0)))) (Textreal.lt_refl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.extreal.extreal_lt @ X0) @ X0))))) (Textreal.le_infty,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ cHOL4.extreal.NegInf) @ X0)) @ ((cHOL4.extreal.extreal_le @ X0) @ cHOL4.extreal.PosInf))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ cHOL4.extreal.PosInf) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))))))) (Textreal.lt_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.Normal @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.Normal @ X1)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ cHOL4.extreal.NegInf) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.extreal.extreal_lt @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.extreal.extreal_lt @ cHOL4.extreal.PosInf) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_lt @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.extreal.extreal_lt @ cHOL4.extreal.NegInf) @ X0))))))))))))) (Textreal.lt_imp_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))))))) (Textreal.lt_imp_ne,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Textreal.le_trans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2))) @ ((cHOL4.extreal.extreal_le @ X0) @ X2))))))))) (Textreal.lt_trans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2))) @ ((cHOL4.extreal.extreal_lt @ X0) @ X2))))))))) (Textreal.let_trans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2))) @ ((cHOL4.extreal.extreal_lt @ X0) @ X2))))))))) (Textreal.le_antisym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Textreal.lt_antisym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X0)))))))) (Textreal.lte_trans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2))) @ ((cHOL4.extreal.extreal_lt @ X0) @ X2))))))))) (Textreal.le_total,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X0))))))) (Textreal.lt_total,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X0)))))))) (Textreal.le_01,((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Textreal.lt_01,((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Textreal.ne_01,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Textreal.le_02,((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Textreal.lt_02,((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Textreal.ne_02,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Textreal.le_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ X0))))) (Textreal.lt_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))))) (Textreal.le_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Textreal.le_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_ainv @ X0)) @ (cHOL4.extreal.extreal_ainv @ X1))) @ ((cHOL4.extreal.extreal_le @ X1) @ X0))))))) (Textreal.lt_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_ainv @ X0)) @ (cHOL4.extreal.extreal_ainv @ X1))) @ ((cHOL4.extreal.extreal_lt @ X1) @ X0))))))) (Textreal.le_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_add @ X0) @ X1)))))))) (Textreal.lt_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_add @ X0) @ X1)))))))) (Textreal.let_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_add @ X0) @ X1)))))))) (Textreal.lte_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_add @ X0) @ X1)))))))) (Textreal.le_add2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X2) @ X3))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X0) @ X2)) @ ((cHOL4.extreal.extreal_add @ X1) @ X3)))))))))))) (Textreal.lt_add2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X3))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X0) @ X2)) @ ((cHOL4.extreal.extreal_add @ X1) @ X3)))))))))))) (Textreal.let_add2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X3))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X0) @ X2)) @ ((cHOL4.extreal.extreal_add @ X1) @ X3)))))))))))) (Textreal.let_add2_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X3))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X0) @ X2)) @ ((cHOL4.extreal.extreal_add @ X1) @ X3)))))))))))) (Textreal.le_addr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ ((cHOL4.extreal.extreal_add @ X0) @ X1))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)))))))) (Textreal.le_addr_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_le @ X0) @ ((cHOL4.extreal.extreal_add @ X0) @ X1)))))))) (Textreal.le_ladd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X0) @ X2))) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))))))) (Textreal.le_radd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))))))) (Textreal.le_radd_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ ((cHOL4.extreal.extreal_add @ X2) @ X0)))))))))) (Textreal.le_ladd_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X0) @ X2)))))))))) (Textreal.lt_ladd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X0) @ X2))) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2)))))))))) (Textreal.lt_radd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2)))))))))) (Textreal.lt_addl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ X1) @ ((cHOL4.extreal.extreal_add @ X0) @ X1))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)))))))) (Textreal.le_lneg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_ainv @ X0)) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_add @ X0) @ X1)))))))) (Textreal.le_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.let_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.lte_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.le_mul_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.mul_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.lt_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.lt_mul_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.mul_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.mul_let,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.mul_lte,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.le_rmul_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X0) @ X2)) @ ((cHOL4.extreal.extreal_mul @ X1) @ X2)))))))))) (Textreal.le_lmul_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X2) @ X0)) @ ((cHOL4.extreal.extreal_mul @ X2) @ X1)))))))))) (Textreal.lt_rmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_mul @ X0) @ X2)) @ ((cHOL4.extreal.extreal_mul @ X1) @ X2))) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)))))))))) (Textreal.lt_lmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X2))) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2)))))))))) (Textreal.lt_mul2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X3))))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_mul @ X0) @ X2)) @ ((cHOL4.extreal.extreal_mul @ X1) @ X3)))))))))))) (Textreal.abs_pos,(cHOL4.bool.! @ (^[X0]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_abs @ X0))))) (Textreal.abs_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_abs @ X0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0))))) (Textreal.abs_bounds,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_abs @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_ainv @ X1)) @ X0)) @ ((cHOL4.extreal.extreal_le @ X0) @ X1)))))))) (Textreal.abs_bounds_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_abs @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_ainv @ X1)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)))))))) (Textreal.add_comm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X1) @ X0))))))) (Textreal.add_assoc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ ((cHOL4.extreal.extreal_add @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ X2))))))))) (Textreal.add_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ cHOL4.extreal.PosInf))))))))) (Textreal.add_rzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ X0)))) (Textreal.add_lzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (Textreal.add_infty,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ cHOL4.extreal.PosInf) @ X0)) @ cHOL4.extreal.PosInf))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ cHOL4.extreal.NegInf) @ X0)) @ cHOL4.extreal.NegInf))))))) (Textreal.EXTREAL_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Textreal.sub_rzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ X0)))) (Textreal.sub_lzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.extreal.extreal_ainv @ X0))))) (Textreal.sub_le_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2))))))))) (Textreal.sub_le_imp2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2))))))))) (Textreal.le_sub_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_sub @ X2) @ X0)))))))))) (Textreal.lt_sub_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X1) @ ((cHOL4.extreal.extreal_sub @ X2) @ X0)))))))))) (Textreal.sub_lt_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_lt @ X1) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2))))))))) (Textreal.sub_lt_imp2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_lt @ X1) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2))))))))) (Textreal.sub_zero_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)))))))) (Textreal.sub_zero_lt2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_sub @ X1) @ X0))))) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1))))))) (Textreal.sub_lt_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.sub_lt_zero2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1))))))) (Textreal.sub_zero_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)))))))) (Textreal.sub_le_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))))) (Textreal.le_sub_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_sub @ X2) @ X0))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ X2)))))))))) (Textreal.le_sub_eq2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_sub @ X2) @ X0))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ X2)))))))))) (Textreal.sub_le_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))))))))))) (Textreal.sub_le_eq2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_add @ X2) @ X0))))))))))) (Textreal.sub_le_switch,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X2)) @ X0)))))))))) (Textreal.sub_le_switch2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X1) @ X2)) @ X0)))))))))) (Textreal.lt_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X1) @ ((cHOL4.extreal.extreal_sub @ X2) @ X0))))))))))) (Textreal.sub_add2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ ((cHOL4.extreal.extreal_sub @ X1) @ X0))) @ X1))))))) (Textreal.add_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ X1)) @ X0))))))) (Textreal.add_sub2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.extreal.extreal_add @ X1) @ X0)) @ X1)) @ X0))))))) (Textreal.sub_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ X1)) @ X0))))))) (Textreal.extreal_sub_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X0) @ (cHOL4.extreal.extreal_ainv @ X1)))))))) (Textreal.sub_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Textreal.neg_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_ainv @ X0))) @ X0)))) (Textreal.neg_0,((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) (Textreal.neg_eq0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) (Textreal.eq_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ X0)) @ (cHOL4.extreal.extreal_ainv @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Textreal.neg_minus1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ X0)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Textreal.sub_rneg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ (cHOL4.extreal.extreal_ainv @ X1))) @ ((cHOL4.extreal.extreal_add @ X0) @ X1))))))) (Textreal.sub_lneg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.extreal_ainv @ X0)) @ X1)) @ (cHOL4.extreal.extreal_ainv @ ((cHOL4.extreal.extreal_add @ X0) @ X1))))))))) (Textreal.neg_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_ainv @ ((cHOL4.extreal.extreal_sub @ X0) @ X1))) @ ((cHOL4.extreal.extreal_sub @ X1) @ X0)))))))) (Textreal.sub_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ cHOL4.extreal.PosInf))))))))) (Textreal.le_lsub_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_sub @ X0) @ X2)) @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)))))))))) (Textreal.eq_sub_ladd_normal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.extreal.extreal_sub @ X1) @ (cHOL4.extreal.Normal @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ (cHOL4.extreal.Normal @ X2))) @ X1))))))))) (Textreal.eq_sub_radd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.extreal.extreal_add @ X2) @ X1))))))))))) (Textreal.eq_sub_ladd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.extreal.extreal_sub @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X2)) @ X1)))))))))) (Textreal.eq_sub_switch,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X2)) @ X1))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X2)) @ X0)))))))))) (Textreal.eq_add_sub_switch,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X2)) @ ((cHOL4.extreal.extreal_sub @ X3) @ X1))))))))))))) (Textreal.sub_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ X0) @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) (Textreal.mul_comm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X1) @ X0))))))) (Textreal.mul_assoc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ ((cHOL4.extreal.extreal_mul @ X1) @ X2))) @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ X2))))))))) (Textreal.mul_not_infty,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ cHOL4.extreal.NegInf)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ cHOL4.extreal.PosInf)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ cHOL4.extreal.PosInf)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ cHOL4.extreal.NegInf))))))))))) (Textreal.mul_not_infty2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ cHOL4.extreal.PosInf))))))))) (Textreal.add_ldistrib_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ ((cHOL4.extreal.extreal_add @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X2))))))))))) (Textreal.add_ldistrib_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.extreal.extreal_le @ X2) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ ((cHOL4.extreal.extreal_add @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X2))))))))))) (Textreal.add_ldistrib_normal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X2))))))))))) (Textreal.add_ldistrib_normal2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X1)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X0)) @ X2))))))))))) (Textreal.add_rdistrib_normal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_add @ X1) @ X2)) @ (cHOL4.extreal.Normal @ X0))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ X1) @ (cHOL4.extreal.Normal @ X0))) @ ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ X0)))))))))))) (Textreal.add_rdistrib_normal2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_add @ X1) @ X2)) @ (cHOL4.extreal.Normal @ X0))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ X1) @ (cHOL4.extreal.Normal @ X0))) @ ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ X0)))))))))))) (Textreal.add_ldistrib,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.extreal.extreal_le @ X2) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ ((cHOL4.extreal.extreal_add @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X2))))))))))) (Textreal.add_rdistrib,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.extreal.extreal_le @ X2) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_add @ X1) @ X2)) @ X0)) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_mul @ X1) @ X0)) @ ((cHOL4.extreal.extreal_mul @ X2) @ X0))))))))))) (Textreal.mul_lneg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_ainv @ X0)) @ X1)) @ (cHOL4.extreal.extreal_ainv @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.mul_rneg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ (cHOL4.extreal.extreal_ainv @ X1))) @ (cHOL4.extreal.extreal_ainv @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)))))))) (Textreal.neg_mul2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_ainv @ X0)) @ (cHOL4.extreal.extreal_ainv @ X1))) @ ((cHOL4.extreal.extreal_mul @ X0) @ X1))))))) (Textreal.add2_sub2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.extreal.NegInf))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ ((cHOL4.extreal.extreal_sub @ X2) @ X3))) @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.extreal.extreal_add @ X0) @ X2)) @ ((cHOL4.extreal.extreal_add @ X1) @ X3))))))))))))) (Textreal.sub_ldistrib,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ ((cHOL4.extreal.extreal_sub @ X1) @ X2))) @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ ((cHOL4.extreal.extreal_mul @ X0) @ X2))))))))))) (Textreal.sub_rdistrib,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.extreal.extreal_mul @ X0) @ X2)) @ ((cHOL4.extreal.extreal_mul @ X1) @ X2))))))))))) (Textreal.extreal_div_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.Normal @ X0)) @ (cHOL4.extreal.Normal @ X1))) @ (cHOL4.extreal.Normal @ ((cHOL4.real./ @ X0) @ X1)))))))) (Textreal.inv_one,((cHOL4.min.= @ (cHOL4.extreal.extreal_inv @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Textreal.inv_1over,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_inv @ X0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Textreal.div_one,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_div @ X0) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Textreal.inv_pos,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))) (Textreal.rinv_uniq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.extreal.extreal_inv @ X0)))))))) (Textreal.linv_uniq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.extreal.extreal_inv @ X1)))))))) (Textreal.le_rdiv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X1) @ (cHOL4.extreal.Normal @ X0))) @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_div @ X2) @ (cHOL4.extreal.Normal @ X0)))))))))))) (Textreal.le_ldiv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ X0)))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ X1) @ (cHOL4.extreal.Normal @ X0))) @ X2)))))))))) (Textreal.lt_rdiv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ X0) @ ((cHOL4.extreal.extreal_div @ X1) @ (cHOL4.extreal.Normal @ X2)))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_mul @ X0) @ (cHOL4.extreal.Normal @ X2))) @ X1)))))))))) (Textreal.lt_ldiv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_div @ X0) @ (cHOL4.extreal.Normal @ X2))) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X0) @ ((cHOL4.extreal.extreal_mul @ X1) @ (cHOL4.extreal.Normal @ X2)))))))))))) (Textreal.lt_rdiv_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_div @ X1) @ (cHOL4.extreal.Normal @ X2))) @ X0)) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_mul @ X0) @ (cHOL4.extreal.Normal @ X2))) @ X1)))))))))) (Textreal.div_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_div @ X0) @ X2)) @ ((cHOL4.extreal.extreal_div @ X1) @ X2))) @ ((cHOL4.extreal.extreal_div @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ X2)))))))))) (Textreal.le_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_inv @ X0)))))) (Textreal.pow_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X0) @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Textreal.pow_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Textreal.pow_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_mul @ X0) @ X0))))) (Textreal.pow_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X1) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.pow_zero_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.le_pow2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Textreal.pow_pos_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_pow @ X0) @ X1)))))))) (Textreal.pow_pos_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_pow @ X0) @ X1)))))))) (Textreal.pow_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ ((cHOL4.extreal.extreal_pow @ X2) @ X0)))))))))) (Textreal.pow_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_pow @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.extreal.extreal_pow @ X2) @ (cHOL4.num.SUC @ X0))))))))))) (Textreal.pow_lt2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2)))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ ((cHOL4.extreal.extreal_pow @ X2) @ X0)))))))))) (Textreal.pow_le_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ X2))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_pow @ X0) @ X1)) @ ((cHOL4.extreal.extreal_pow @ X0) @ X2)))))))))) (Textreal.pow_pos_even,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_pow @ X1) @ X0))) @ (cHOL4.arithmetic.EVEN @ X0)))))))) (Textreal.pow_neg_odd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ (cHOL4.arithmetic.ODD @ X0)))))))) (Textreal.add_pow2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_pow @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ X1)))))))) (Textreal.pow_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_pow @ X0) @ X1)) @ ((cHOL4.extreal.extreal_pow @ X0) @ X2)))))))))) (Textreal.pow_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ ((cHOL4.extreal.extreal_mul @ X1) @ X2)) @ X0)) @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ ((cHOL4.extreal.extreal_pow @ X2) @ X0)))))))))) (Textreal.pow_minus1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Textreal.pow_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ X1) @ X0)) @ cHOL4.extreal.PosInf))))))))) (Textreal.sqrt_pos_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_sqrt @ X0)))))) (Textreal.sqrt_pos_lt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (cHOL4.extreal.extreal_sqrt @ X0)))))) (Textreal.pow2_sqrt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sqrt @ ((cHOL4.extreal.extreal_pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))))) (Textreal.sqrt_pow2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_sqrt @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0))))) (Textreal.sqrt_mono_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_sqrt @ X0)) @ (cHOL4.extreal.extreal_sqrt @ X1)))))))) (Textreal.logr_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_logr @ X1) @ X0)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_logr @ X1) @ X0)) @ cHOL4.extreal.PosInf))))))))) (Textreal.half_between,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Textreal.thirds_between,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Textreal.half_cancel,((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Textreal.third_cancel,((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Textreal.fourth_cancel,((cHOL4.min.= @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Textreal.quotient_normal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X0)) @ (cHOL4.extreal.extreal_of_num @ X1))) @ (cHOL4.extreal.Normal @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))))))))) (Textreal.ext_mono_increasing_suc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.ext_mono_increasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1))))))))) (Textreal.ext_mono_decreasing_suc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.ext_mono_decreasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ X1)))))))) (Textreal.EXTREAL_ARCH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.extreal.extreal_lt @ X1) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ X2)) @ X0))))))))))) (Textreal.SIMP_REAL_ARCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ X1))))))) (Textreal.SIMP_REAL_ARCH_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1))) @ X0)))))) (Textreal.SIMP_EXTREAL_ARCH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.extreal.extreal_le @ X0) @ (cHOL4.extreal.extreal_of_num @ X1)))))))) (Textreal.REAL_ARCH_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))))))) (Textreal.EXTREAL_ARCH_POW,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.extreal.extreal_lt @ X0) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)))))))) (Textreal.EXTREAL_ARCH_POW_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.Normal @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X1))) @ X0))))))) (Textreal.REAL_LE_MUL_EPSILON,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.realax.real_lt @ X2) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X2) @ X0)) @ X1))))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))) (Textreal.le_epsilon,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.extreal.extreal_le @ X0) @ ((cHOL4.extreal.extreal_add @ X1) @ X2)))))) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))))))) (Textreal.le_mul_epsilon,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X2) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_mul @ X2) @ X0)) @ X1))))) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))))))) (Textreal.EXTREAL_SUM_IMAGE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.extreal.extreal_add @ (X0 @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1))))))))))))) (Textreal.EXTREAL_SUM_IMAGE_NOT_NEG_INF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.NegInf))))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ cHOL4.extreal.NegInf)))))))) (Textreal.EXTREAL_SUM_IMAGE_NOT_POS_INF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.PosInf))))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ cHOL4.extreal.PosInf)))))))) (Textreal.EXTREAL_SUM_IMAGE_NOT_INFTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.NegInf))))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ cHOL4.extreal.NegInf)))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.PosInf))))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ cHOL4.extreal.PosInf))))))))) (Textreal.EXTREAL_SUM_IMAGE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ (X0 @ X1))))))) (Textreal.EXTREAL_SUM_IMAGE_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X2))))))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)))))))) (Textreal.EXTREAL_SUM_IMAGE_SPOS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X2)))))))) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)))))))) (Textreal.EXTREAL_SUM_IMAGE_IF_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (X1 @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: (((cHOL4.bool.COND @ (X1 @ X3)) @ (X2 @ X3)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X0)))))))))) (Textreal.EXTREAL_SUM_IMAGE_FINITE_SAME,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.pred_set.CARD @ X0))) @ (X1 @ X2)))))))))))) (Textreal.EXTREAL_SUM_IMAGE_FINITE_CONST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ X3)) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ (cHOL4.pred_set.CARD @ X0))) @ X2))))))))))) (Textreal.EXTREAL_SUM_IMAGE_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X1]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ X0)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) (Textreal.EXTREAL_SUM_IMAGE_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) (Textreal.EXTREAL_SUM_IMAGE_IN_IF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ X0)))))))) (Textreal.EXTREAL_SUM_IMAGE_CMUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ (X1 @ X3)))) @ X0)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)))))))))))) (Textreal.EXTREAL_SUM_IMAGE_CMUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X3)) @ cHOL4.extreal.NegInf))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ (X1 @ X3)))) @ X0)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0))))))))))) (Textreal.EXTREAL_SUM_IMAGE_IMAGE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X1) @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))))) (Textreal.EXTREAL_SUM_IMAGE_DISJOINT_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X1))))))))))) (Textreal.EXTREAL_SUM_IMAGE_EQ_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ X0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.pred_set.CARD @ X0))))))) (Textreal.EXTREAL_SUM_IMAGE_INV_CARD_EQ_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.pred_set.FINITE @ X0))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.extreal.extreal_inv @ (cHOL4.extreal.extreal_of_num @ (cHOL4.pred_set.CARD @ X0)))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ X0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Textreal.EXTREAL_SUM_IMAGE_INTER_NONZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ ((cHOL4.pred_set.INTER @ X0) @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)))))))) (Textreal.EXTREAL_SUM_IMAGE_INTER_ELIM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ X2))) @ ((cHOL4.min.= @ (X1 @ X3)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ ((cHOL4.pred_set.INTER @ X0) @ X2))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0))))))))))) (Textreal.EXTREAL_SUM_IMAGE_ZERO_DIFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ ((cHOL4.pred_set.DIFF @ X0) @ X2)))))))))))) (Textreal.EXTREAL_SUM_IMAGE_MONO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.extreal.extreal_le @ (X1 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X0))))))))))) (Textreal.EXTREAL_SUM_IMAGE_MONO_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X3))))))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X2)))))))))) (Textreal.EXTREAL_SUM_IMAGE_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X0))))))))))) (Textreal.EXTREAL_SUM_IMAGE_POS_MEM_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X2))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.extreal.extreal_le @ (X0 @ X2)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ X1))))))))))) (Textreal.EXTREAL_SUM_IMAGE_ADD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.extreal.extreal_add @ (X1 @ X3)) @ (X2 @ X3)))) @ X0)) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X0))))))))))) (Textreal.EXTREAL_SUM_IMAGE_SUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.extreal.NegInf)))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.extreal.PosInf))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.extreal.extreal_sub @ (X1 @ X3)) @ (X2 @ X3)))) @ X0)) @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X0)))))))))))) (Textreal.EXTREAL_SUM_IMAGE_EXTREAL_SUM_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (X2 @ X3)) @ X1))) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((X2 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ ((cHOL4.pred_set.CROSS @ X0) @ X1))))))))))) (Textreal.EXTREAL_SUM_IMAGE_NORMAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: (cHOL4.extreal.Normal @ (X0 @ X2)))) @ X1)) @ (cHOL4.extreal.Normal @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ X1))))))))) (Textreal.EXTREAL_SUM_IMAGE_IN_IF_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X3) @ X0)) @ (X1 @ X3)) @ X2))) @ X0)))))))))) (Textreal.EXTREAL_SUM_IMAGE_CROSS_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: (X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)))))) @ ((cHOL4.pred_set.CROSS @ X1) @ X2))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)))))) @ ((cHOL4.pred_set.CROSS @ X2) @ X1))))))))))) (Textreal.EXTREAL_SUM_IMAGE_COUNT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_add @ (X0 @ cHOL4.num.0)) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ (X0 @ cHOL4.num.0)) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ (X0 @ cHOL4.num.0)) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.extreal_add @ (X0 @ cHOL4.num.0)) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Textreal.le_sup_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_sup @ X0)))))))) (Textreal.sup_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_sup @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X2) @ X1)))))))))) (Textreal.le_sup,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_sup @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.extreal.extreal_le @ X3) @ X2))))) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))))))) (Textreal.sup_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X2) @ X1))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.extreal.extreal_le @ X3) @ X2))))) @ ((cHOL4.extreal.extreal_le @ X1) @ X2))))))))))) (Textreal.sup_const,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ X0)))) (Textreal.sup_const_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.min.= @ X2) @ X1)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ X0)) @ X1))))))) (Textreal.sup_const_over_set,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X2]: X1)) @ X0))) @ X1))))))) (Textreal.sup_num,((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.extreal.extreal_of_num @ X1))))))) @ cHOL4.extreal.PosInf)) (Textreal.sup_le_sup_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.extreal.extreal_le @ X2) @ X3)))))))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_sup @ X0)) @ (cHOL4.extreal.extreal_sup @ X1)))))))) (Textreal.sup_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))))))))) (Textreal.sup_suc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ (X0 @ X1)) @ (X0 @ X2)))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X2]: (X0 @ (cHOL4.num.SUC @ X2)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))))))) (Textreal.sup_seq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.extreal.mono_increasing @ X0)) @ ((cHOL4.min.= @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X2]: (cHOL4.extreal.Normal @ (X0 @ X2)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.Normal @ X1))))))))) (Textreal.sup_lt_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ cHOL4.extreal.PosInf)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ cHOL4.extreal.PosInf)))))))) (Textreal.sup_max,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X2) @ X1)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ X0)) @ X1))))))) (Textreal.sup_add_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (X0 @ X2)) @ (X0 @ (cHOL4.num.SUC @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (X1 @ X2)) @ (X1 @ (cHOL4.num.SUC @ X2))))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_add @ (X0 @ X2)) @ (X1 @ X2)))) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))))))))) (Textreal.sup_sum_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X0 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ ((X0 @ X2) @ X3)) @ ((X0 @ X2) @ (cHOL4.num.SUC @ X3))))))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((X0 @ X2) @ X3))) @ X1))) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (X0 @ X2)) @ cHOL4.pred_set.UNIV)))) @ X1)))))))) (Textreal.sup_le_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (X0 @ X2)) @ (X0 @ (cHOL4.num.SUC @ X2)))))) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.extreal.extreal_le @ X1) @ (X0 @ X2)))))))))) (Textreal.sup_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2)))) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV)))))))))) (Textreal.sup_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2))))) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_sup @ X0)))))))) (Textreal.sup_lt_epsilon,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf)))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ X0)) @ cHOL4.extreal.PosInf))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ ((cHOL4.extreal.extreal_add @ X2) @ X1))))))))))) (Textreal.inf_le_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_inf @ X0)) @ X1))))))) (Textreal.le_inf,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X1) @ (cHOL4.extreal.extreal_inf @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))))))) (Textreal.inf_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_inf @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.extreal.extreal_le @ X2) @ X3))))) @ ((cHOL4.extreal.extreal_le @ X2) @ X1)))))))))) (Textreal.inf_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.extreal.extreal_le @ X2) @ X3))))) @ ((cHOL4.extreal.extreal_le @ X2) @ X1))))))))))) (Textreal.inf_const,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ X0)))) (Textreal.inf_const_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.min.= @ X2) @ X1)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ X0)) @ X1))))))) (Textreal.inf_const_over_set,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ ((cHOL4.pred_set.IMAGE @ (^[X2]: X1)) @ X0))) @ X1))))))) (Textreal.inf_suc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.extreal.extreal_le @ (X0 @ X2)) @ (X0 @ X1)))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ ((cHOL4.pred_set.IMAGE @ (^[X2]: (X0 @ (cHOL4.num.SUC @ X2)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_inf @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))))))) (Textreal.inf_seq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.extreal.mono_decreasing @ X0)) @ ((cHOL4.min.= @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ ((cHOL4.pred_set.IMAGE @ (^[X2]: (cHOL4.extreal.Normal @ (X0 @ X2)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.Normal @ X1))))))))) (Textreal.inf_lt_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ cHOL4.extreal.NegInf) @ (cHOL4.extreal.extreal_inf @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.extreal.extreal_lt @ cHOL4.extreal.NegInf) @ X1)))))))) (Textreal.inf_min,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_inf @ X0)) @ X1))))))) (Textreal.inf_cminus,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.extreal_inf @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV)))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2)))) @ cHOL4.pred_set.UNIV)))))))) (Textreal.ext_suminf_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X2))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X2]: ((cHOL4.extreal.extreal_add @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.ext_suminf @ X0)) @ (cHOL4.extreal.ext_suminf @ X1))))))))) (Textreal.ext_suminf_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X2]: ((cHOL4.extreal.extreal_mul @ X1) @ (X0 @ X2))))) @ ((cHOL4.extreal.extreal_mul @ X1) @ (cHOL4.extreal.ext_suminf @ X0))))))))) (Textreal.ext_suminf_cmul_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.NegInf))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.PosInf))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2))))) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (cHOL4.extreal.ext_suminf @ X0))))))))) (Textreal.ext_suminf_lt_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ X0)) @ cHOL4.extreal.PosInf)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_lt @ (X0 @ X1)) @ cHOL4.extreal.PosInf))))))) (Textreal.ext_suminf_suminf,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X1]: (cHOL4.extreal.Normal @ (X0 @ X1))))) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X1]: (cHOL4.extreal.Normal @ (X0 @ X1))))) @ (cHOL4.extreal.Normal @ (cHOL4.seq.suminf @ X0))))))) (Textreal.ext_suminf_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.NegInf))) @ ((cHOL4.extreal.extreal_le @ (X1 @ X2)) @ (X0 @ X2)))))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.ext_suminf @ X1)) @ (cHOL4.extreal.ext_suminf @ X0)))))))) (Textreal.ext_suminf_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))) @ ((cHOL4.extreal.extreal_le @ (X1 @ X2)) @ (X0 @ X2)))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ X0)) @ cHOL4.extreal.PosInf)))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X3]: ((cHOL4.extreal.extreal_sub @ (X0 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.extreal.extreal_sub @ (cHOL4.extreal.ext_suminf @ X0)) @ (cHOL4.extreal.ext_suminf @ X1))))))))) (Textreal.ext_suminf_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ X0)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ X1))))))))) (Textreal.min_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_min @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.extreal.extreal_le @ X1) @ X0)) @ ((cHOL4.extreal.extreal_le @ X2) @ X0)))))))))) (Textreal.min_le1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_min @ X0) @ X1)) @ X0)))))) (Textreal.min_le2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_min @ X0) @ X1)) @ X1)))))) (Textreal.le_min,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ ((cHOL4.extreal.extreal_min @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X0) @ X2)))))))))) (Textreal.min_le2_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ X3))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_min @ X0) @ X1)) @ ((cHOL4.extreal.extreal_min @ X2) @ X3)))))))))))) (Textreal.min_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ X0) @ X0)) @ X0)))) (Textreal.min_comm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ X0) @ X1)) @ ((cHOL4.extreal.extreal_min @ X1) @ X0))))))) (Textreal.min_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ X0) @ cHOL4.extreal.PosInf)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ cHOL4.extreal.PosInf) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ cHOL4.extreal.NegInf) @ X0)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_min @ X0) @ cHOL4.extreal.NegInf)) @ cHOL4.extreal.NegInf))))))) (Textreal.le_max,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ X0) @ ((cHOL4.extreal.extreal_max @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X0) @ X2)))))))))) (Textreal.le_max1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ X0) @ ((cHOL4.extreal.extreal_max @ X0) @ X1))))))) (Textreal.le_max2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ X1) @ ((cHOL4.extreal.extreal_max @ X0) @ X1))))))) (Textreal.max_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_max @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X1) @ X0)) @ ((cHOL4.extreal.extreal_le @ X2) @ X0)))))))))) (Textreal.max_le2_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X2)) @ ((cHOL4.extreal.extreal_le @ X1) @ X3))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_max @ X0) @ X1)) @ ((cHOL4.extreal.extreal_max @ X2) @ X3)))))))))))) (Textreal.max_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ X0) @ X0)) @ X0)))) (Textreal.max_comm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ X0) @ X1)) @ ((cHOL4.extreal.extreal_max @ X1) @ X0))))))) (Textreal.max_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ X0) @ cHOL4.extreal.PosInf)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ cHOL4.extreal.PosInf) @ X0)) @ cHOL4.extreal.PosInf)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ cHOL4.extreal.NegInf) @ X0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_max @ X0) @ cHOL4.extreal.NegInf)) @ X0))))))) (Textreal.Q_not_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.extreal.Normal @ X1)))))))) (Textreal.Q_COUNTABLE,(cHOL4.util_prob.countable @ cHOL4.extreal.Q_set)) (Textreal.NUM_IN_Q,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.extreal.extreal_of_num @ X0)) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_of_num @ X0))) @ cHOL4.extreal.Q_set))))) (Textreal.Q_INFINITE,(cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.extreal.Q_set))) (Textreal.OPP_IN_Q,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ (cHOL4.extreal.extreal_ainv @ X0)) @ cHOL4.extreal.Q_set))))) (Textreal.INV_IN_Q,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ cHOL4.extreal.Q_set))))) (Textreal.CMUL_IN_Q,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_of_num @ X0)) @ X1)) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.extreal_of_num @ X0))) @ X1)) @ cHOL4.extreal.Q_set)))))))) (Textreal.ADD_IN_Q,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ X1) @ cHOL4.extreal.Q_set))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_add @ X0) @ X1)) @ cHOL4.extreal.Q_set))))))) (Textreal.SUB_IN_Q,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ X1) @ cHOL4.extreal.Q_set))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_sub @ X0) @ X1)) @ cHOL4.extreal.Q_set))))))) (Textreal.MUL_IN_Q,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool.IN @ X1) @ cHOL4.extreal.Q_set))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_mul @ X0) @ X1)) @ cHOL4.extreal.Q_set))))))) (Textreal.DIV_IN_Q,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ cHOL4.extreal.Q_set)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_div @ X0) @ X1)) @ cHOL4.extreal.Q_set))))))) (Textreal.rat_not_infty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.extreal.PosInf))))))) (Textreal.CEILING_LBOUND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.Normal @ X0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.extreal.ceiling @ (cHOL4.extreal.Normal @ X0))))))) (Textreal.CEILING_UBOUND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ (cHOL4.extreal.ceiling @ (cHOL4.extreal.Normal @ X0)))) @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.Normal @ X0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Textreal.Q_DENSE_IN_R_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X1))))))))))) (Textreal.Q_DENSE_IN_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ cHOL4.extreal.Q_set)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X1))))))))))) (Textreal.COUNTABLE_ENUM_Q,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.countable @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.extreal.Q_set))))))))) (Textreal.CROSS_COUNTABLE_UNIV,(cHOL4.util_prob.countable @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))) (Textreal.CROSS_COUNTABLE_LEMMA1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.util_prob.countable @ X0)))) @ (cHOL4.util_prob.countable @ ((cHOL4.pred_set.CROSS @ X1) @ X0)))))))) (Textreal.CROSS_COUNTABLE_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X0)) @ (cHOL4.pred_set.FINITE @ X0)))) @ (cHOL4.util_prob.countable @ ((cHOL4.pred_set.CROSS @ X1) @ X0)))))))) (Textreal.CROSS_COUNTABLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ (cHOL4.util_prob.countable @ X0))) @ (cHOL4.util_prob.countable @ ((cHOL4.pred_set.CROSS @ X1) @ X0)))))))) (Textreal.COUNTABLE_RATIONAL_INTERVALS,(cHOL4.util_prob.countable @ cHOL4.extreal.rational_intervals)) (Tfcp.HAS_SIZE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.HAS_SIZE @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X0)) @ X1)))))))) (Tfcp.finite_image_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.bool.ARB)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)))) @ X0)))) (Tfcp.finite_image_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.mk_finite_image @ (cHOL4.fcp.dest_finite_image @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ cHOL4.bool.ARB)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.fcp.dest_finite_image @ (cHOL4.fcp.mk_finite_image @ X1))) @ X1)))))) (Tfcp.dimindex_def,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (((cHOL4.bool.COND @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.CARD @ cHOL4.pred_set.UNIV)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfcp.finite_index_def,((cHOL4.min.= @ cHOL4.fcp.finite_index) @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (X0 @ X2)) @ X1)))))))))) (Tfcp.cart_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: cHOL4.bool.T)) @ X0)))) (Tfcp.cart_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.mk_cart @ (cHOL4.fcp.dest_cart @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: cHOL4.bool.T) @ X1)) @ ((cHOL4.min.= @ (cHOL4.fcp.dest_cart @ (cHOL4.fcp.mk_cart @ X1))) @ X1)))))) (Tfcp.fcp_index,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ ((cHOL4.fcp.dest_cart @ X0) @ (cHOL4.fcp.finite_index @ X1)))))))) (Tfcp.fcp_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_CASE @ (cHOL4.fcp.mk_cart @ X0)) @ X1)) @ (X1 @ X0))))))) (Tfcp.FCP,((cHOL4.min.= @ cHOL4.fcp.FCP) @ (^[X0]: (cHOL4.min.|at| @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X1) @ X2)) @ (X0 @ X2)))))))))) (Tfcp.bit0_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ X3) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X3))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ X3) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X3)))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tfcp.bit0_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fcp.bit0_CASE @ (cHOL4.fcp.BIT0A @ X0)) @ X1) @ X2)) @ (X1 @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fcp.bit0_CASE @ (cHOL4.fcp.BIT0B @ X0)) @ X1) @ X2)) @ (X2 @ X0)))))))))) (Tfcp.bit0_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.bit0_size @ X0) @ (cHOL4.fcp.BIT0A @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.bit0_size @ X0) @ (cHOL4.fcp.BIT0B @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X1))))))))) (Tfcp.bit1_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ X3) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X3))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ X3) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X3))))) @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.bool.ARB) @ (^[X4]: cHOL4.ind_type.BOTTOM)))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tfcp.bit1_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fcp.bit1_CASE @ (cHOL4.fcp.BIT1A @ X0)) @ X1) @ X2) @ X3)) @ (X1 @ X0))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fcp.bit1_CASE @ (cHOL4.fcp.BIT1B @ X0)) @ X1) @ X2) @ X3)) @ (X2 @ X0))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fcp.bit1_CASE @ cHOL4.fcp.BIT1C) @ X1) @ X2) @ X3)) @ X3)))))))))) (Tfcp.bit1_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.bit1_size @ X0) @ (cHOL4.fcp.BIT1A @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.bit1_size @ X0) @ (cHOL4.fcp.BIT1B @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fcp.bit1_size @ X0) @ cHOL4.fcp.BIT1C)) @ cHOL4.num.0)))))) (Tfcp.FCP_UPDATE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.|colon|+ @ X0) @ X1)) @ (^[X2]: (cHOL4.fcp.FCP @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X3)) @ X1) @ ((cHOL4.fcp.fcp_index @ X2) @ X3))))))))))) (Tfcp.FCP_HD_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.FCP_HD @ X0)) @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))))) (Tfcp.FCP_TL_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.FCP_TL @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tfcp.FCP_CONS_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_CONS @ X0) @ X1)) @ (((cHOL4.fcp.|colon|+ @ cHOL4.num.0) @ X0) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.fcp.fcp_index @ X1) @ (cHOL4.prim_rec.PRE @ X2))))))))))) (Tfcp.FCP_MAP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_MAP @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (X0 @ ((cHOL4.fcp.fcp_index @ X1) @ X2)))))))))) (Tfcp.FCP_EXISTS_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_EXISTS @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (X0 @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Tfcp.FCP_EVERY_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2)) @ (X0 @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Tfcp.FCP_CONCAT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_CONCAT @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ X1) @ X2)) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))))))) (Tfcp.FCP_ZIP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_ZIP @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.pair.|comma| @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2)))))))))) (Tfcp.V2L_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.V2L @ X0)) @ ((cHOL4.list.GENLIST @ (cHOL4.fcp.fcp_index @ X0)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))) (Tfcp.L2V_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.L2V @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.list.EL @ X1) @ X0))))))) (Tfcp.FCP_FOLD_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fcp.FCP_FOLD @ X0) @ X1) @ X2)) @ (((cHOL4.list.FOLDL @ X0) @ X1) @ (cHOL4.fcp.V2L @ X2)))))))))) (Tfcp.NOT_FINITE_IMP_dimindex_1,((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfcp.DIMINDEX_GE_1,((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) (Tfcp.fcp_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ (cHOL4.fcp.mk_cart @ X2))) @ (X0 @ X2))))))))) (Tfcp.fcp_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.fcp.mk_cart @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tfcp.CART_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Tfcp.FCP_BETA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.fcp.FCP @ X0)) @ X1)) @ (X0 @ X1)))))))) (Tfcp.FCP_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ (X1 @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.fcp.FCP @ X1)) @ X0))))))) (Tfcp.FCP_ETA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.fcp.fcp_index @ X0) @ X1)))) @ X0)))) (Tfcp.card_dimindex,((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ cHOL4.pred_set.UNIV)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) (Tfcp.index_sum,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfcp.finite_sum,((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)))) (Tfcp.datatype_bit0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((X0 @ cHOL4.fcp.BIT0A) @ cHOL4.fcp.BIT0B))))) (Tfcp.bit0_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.BIT0A @ X0)) @ (cHOL4.fcp.BIT0A @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.BIT0B @ X0)) @ (cHOL4.fcp.BIT0B @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tfcp.bit0_distinct,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.fcp.BIT0A @ X1)) @ (cHOL4.fcp.BIT0B @ X0)))))))) (Tfcp.bit0_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (cHOL4.fcp.BIT0A @ X6))) @ ((cHOL4.min.= @ (X4 @ X6)) @ (X1 @ X6)))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (cHOL4.fcp.BIT0B @ X6))) @ ((cHOL4.min.= @ (X5 @ X6)) @ (X0 @ X6)))))))) @ ((cHOL4.min.= @ (((cHOL4.fcp.bit0_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.fcp.bit0_CASE @ X3) @ X1) @ X0)))))))))))))))) (Tfcp.bit0_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.fcp.BIT0A @ X1))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.fcp.BIT0B @ X1)))))))) (Tfcp.bit0_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.fcp.BIT0A @ X3))) @ (X0 @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.fcp.BIT0B @ X3))) @ (X1 @ X3)))))))))))) (Tfcp.bit0_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.fcp.BIT0A @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.fcp.BIT0B @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tfcp.index_bit0,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (((cHOL4.bool.COND @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfcp.finite_bit0,((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) (Tfcp.datatype_bit1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.fcp.BIT1A) @ cHOL4.fcp.BIT1B) @ cHOL4.fcp.BIT1C))))) (Tfcp.bit1_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.BIT1A @ X0)) @ (cHOL4.fcp.BIT1A @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.BIT1B @ X0)) @ (cHOL4.fcp.BIT1B @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tfcp.bit1_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.fcp.BIT1A @ X1)) @ (cHOL4.fcp.BIT1B @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.fcp.BIT1A @ X1)) @ cHOL4.fcp.BIT1C))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.fcp.BIT1B @ X1)) @ cHOL4.fcp.BIT1C))))))) (Tfcp.bit1_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.fcp.BIT1A @ X8))) @ ((cHOL4.min.= @ (X5 @ X8)) @ (X2 @ X8)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.fcp.BIT1B @ X8))) @ ((cHOL4.min.= @ (X6 @ X8)) @ (X1 @ X8)))))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.fcp.BIT1C)) @ ((cHOL4.min.= @ X7) @ X0)))))) @ ((cHOL4.min.= @ ((((cHOL4.fcp.bit1_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.fcp.bit1_CASE @ X4) @ X2) @ X1) @ X0)))))))))))))))))))) (Tfcp.bit1_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.fcp.BIT1A @ X1))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.fcp.BIT1B @ X1))))) @ ((cHOL4.min.= @ X0) @ cHOL4.fcp.BIT1C)))))) (Tfcp.bit1_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.fcp.BIT1A @ X4))) @ (X0 @ X4))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.fcp.BIT1B @ X4))) @ (X1 @ X4))))) @ ((cHOL4.min.= @ (X3 @ cHOL4.fcp.BIT1C)) @ X2)))))))))))) (Tfcp.bit1_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.fcp.BIT1A @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.fcp.BIT1B @ X1))))) @ (X0 @ cHOL4.fcp.BIT1C)))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tfcp.index_bit1,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (((cHOL4.bool.COND @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfcp.finite_bit1,((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) (Tfcp.index_one,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) (Tfcp.finite_one,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Tfcp.FCP_UPDATE_COMMUTES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.fcp.|colon|+ @ X1) @ X3) @ (((cHOL4.fcp.|colon|+ @ X2) @ X4) @ X0))) @ (((cHOL4.fcp.|colon|+ @ X2) @ X4) @ (((cHOL4.fcp.|colon|+ @ X1) @ X3) @ X0))))))))))))))) (Tfcp.FCP_UPDATE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.fcp.|colon|+ @ X1) @ X3) @ (((cHOL4.fcp.|colon|+ @ X1) @ X2) @ X0))) @ (((cHOL4.fcp.|colon|+ @ X1) @ X3) @ X0))))))))))) (Tfcp.FCP_UPDATE_IMP_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.fcp.|colon|+ @ X1) @ X2) @ X0)) @ X0))))))))) (Tfcp.APPLY_FCP_UPDATE_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fcp.|colon|+ @ X1) @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ X0)) @ X0)))))) (Tfcp.FCP_APPLY_UPDATE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (((cHOL4.fcp.|colon|+ @ X2) @ X3) @ X1)) @ X4)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X4) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X4)) @ X3) @ ((cHOL4.fcp.fcp_index @ X1) @ X4))) @ ((((cHOL4.combin.FAIL @ cHOL4.fcp.fcp_index) @ X0) @ (((cHOL4.fcp.|colon|+ @ X2) @ X3) @ X1)) @ X4)))))))))))))) (Tfcp.LENGTH_V2L,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.fcp.V2L @ X0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) (Tfcp.EL_V2L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ (cHOL4.fcp.V2L @ X1))) @ ((cHOL4.fcp.fcp_index @ X1) @ X0)))))))) (Tfcp.FCP_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_MAP @ X0) @ X1)) @ (cHOL4.fcp.L2V @ ((cHOL4.list.MAP @ X0) @ (cHOL4.fcp.V2L @ X1))))))))) (Tfcp.FCP_TL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.fcp.FCP_TL @ X0)) @ (cHOL4.fcp.L2V @ (cHOL4.list.TL @ (cHOL4.fcp.V2L @ X0)))))))) (Tfcp.FCP_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_EXISTS @ X0) @ X1)) @ ((cHOL4.list.EXISTS @ X0) @ (cHOL4.fcp.V2L @ X1)))))))) (Tfcp.FCP_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_EVERY @ X0) @ X1)) @ ((cHOL4.list.EVERY @ X0) @ (cHOL4.fcp.V2L @ X1)))))))) (Tfcp.FCP_HD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.FCP_HD @ X0)) @ (cHOL4.list.HD @ (cHOL4.fcp.V2L @ X0)))))) (Tfcp.FCP_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.FCP_CONS @ X0) @ X1)) @ (cHOL4.fcp.L2V @ ((cHOL4.list.CONS @ X0) @ (cHOL4.fcp.V2L @ X1))))))))) (Tfcp.V2L_L2V,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ (cHOL4.fcp.V2L @ (cHOL4.fcp.L2V @ X0))) @ X0))))) (Tfcp.NULL_V2L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ (cHOL4.list.NULL @ (cHOL4.fcp.V2L @ X0)))))) (Tfcp.READ_TL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.fcp.FCP_TL @ X1)) @ X0)) @ ((cHOL4.fcp.fcp_index @ X1) @ (cHOL4.num.SUC @ X0))))))))) (Tfcp.READ_L2V,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.fcp.L2V @ X1)) @ X0)) @ ((cHOL4.list.EL @ X0) @ X1)))))))) (Tfcp.index_comp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.fcp.FCP @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (X1 @ X2)) @ ((((cHOL4.combin.FAIL @ cHOL4.fcp.fcp_index) @ X0) @ (cHOL4.fcp.FCP @ X1)) @ X2)))))))))) (Tfcp.fcp_subst_comp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.fcp.|colon|+ @ X1) @ X0) @ (cHOL4.fcp.FCP @ X4))) @ (cHOL4.fcp.FCP @ (^[X5]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X5)) @ X0) @ (X4 @ X5)))))))))))))))) (Tfinite_map.FMAP_MAP2_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FMAP_MAP2 @ X0) @ X1)) @ ((cHOL4.finite_map.FUN_FMAP @ (^[X2]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2))))) @ (cHOL4.finite_map.FDOM @ X1)))))))) (Tfinite_map.FUPDATE_LIST,((cHOL4.min.= @ cHOL4.finite_map.FUPDATE_LIST) @ (cHOL4.list.FOLDL @ cHOL4.finite_map.FUPDATE))) (Tfinite_map.SUBMAP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))))) (Tfinite_map.FCARD_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.finite_map.FCARD @ X0)) @ (cHOL4.pred_set.CARD @ (cHOL4.finite_map.FDOM @ X0)))))) (Tfinite_map.FDOM_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FDOM @ X0) @ X1)) @ (cHOL4.sum.ISL @ ((cHOL4.finite_map.fmap_REP @ X0) @ X1)))))))) (Tfinite_map.FAPPLY_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1)) @ (cHOL4.sum.OUTL @ ((cHOL4.finite_map.fmap_REP @ X0) @ X1)))))))) (Tfinite_map.FEMPTY_DEF,((cHOL4.min.= @ cHOL4.finite_map.FEMPTY) @ (cHOL4.finite_map.fmap_ABS @ (^[X0]: (cHOL4.sum.INR @ cHOL4.one.one))))) (Tfinite_map.FUPDATE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (cHOL4.finite_map.fmap_ABS @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X1)) @ (cHOL4.sum.INL @ X2)) @ ((cHOL4.finite_map.fmap_REP @ X0) @ X3)))))))))))) (Tfinite_map.fmap_ISO_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.finite_map.fmap_ABS @ (cHOL4.finite_map.fmap_REP @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.finite_map.is_fmap @ X1)) @ ((cHOL4.min.= @ (cHOL4.finite_map.fmap_REP @ (cHOL4.finite_map.fmap_ABS @ X1))) @ X1)))))) (Tfinite_map.fmap_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.finite_map.is_fmap) @ X0)))) (Tfinite_map.is_fmap_def,((cHOL4.min.= @ cHOL4.finite_map.is_fmap) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (^[X2]: (cHOL4.sum.INR @ cHOL4.one.one)))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (^[X5]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ X2)) @ (cHOL4.sum.INL @ X4)) @ (X3 @ X5))))) @ (X1 @ X3)))))))))) @ (X1 @ X0))))) @ (X1 @ X0))))))) (Tfinite_map.DRESTRICT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1))) @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X0)) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X0)) @ X1))) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X2))))))))))) (Tfinite_map.FUNION_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUNION @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2))))))))))) (Tfinite_map.fmap_domsub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))))))))) (Tfinite_map.f_o_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.f_o @ X0) @ X1)) @ ((cHOL4.finite_map.f_o_f @ X0) @ ((cHOL4.finite_map.FUN_FMAP @ X1) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.IN @ (X1 @ X2)) @ (cHOL4.finite_map.FDOM @ X0))))))))))))) (Tfinite_map.FUN_FMAP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ X1))) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ X1)) @ X2)) @ (X0 @ X2)))))))))))) (Tfinite_map.RRESTRICT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.RRESTRICT @ X0) @ X1))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.RRESTRICT @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ X1))) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X2))))))))))) (Tfinite_map.FRANGE_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.finite_map.FRANGE @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ X1))))))))))) (Tfinite_map.o_f_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.o_f @ X0) @ X1))) @ (cHOL4.finite_map.FDOM @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.o_f @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.o_f @ X0) @ X1)) @ X2)) @ (X0 @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))))) (Tfinite_map.f_o_f_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.f_o_f @ X0) @ X1))) @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.IN @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)) @ (cHOL4.finite_map.FDOM @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.f_o_f @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.f_o_f @ X0) @ X1)) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X0) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))))) (Tfinite_map.FEVERY_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FEVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ (X0 @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))))) (Tfinite_map.FLOOKUP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ (cHOL4.option.SOME @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1))) @ cHOL4.option.NONE))))))) (Tfinite_map.FMERGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ (((cHOL4.finite_map.FMERGE @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.finite_map.FDOM @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ (((cHOL4.finite_map.FMERGE @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.bool.COND @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X1)))) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)) @ (((cHOL4.bool.COND @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2)))) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3)) @ ((X0 @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3)) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3))))))))))))))) (Tfinite_map.MAP_KEYS_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.finite_map.FDOM @ X1)))) @ ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ (cHOL4.finite_map.FDOM @ X1)) @ cHOL4.pred_set.UNIV)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ X1)) @ (X0 @ X2))) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))))) (Tfinite_map.fmap_rel_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.finite_map.fmap_rel @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X2)) @ (cHOL4.finite_map.FDOM @ X1))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X1))) @ ((X0 @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3)) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)))))))))))))) (Tfinite_map.fmap_EQ_UPTO_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.finite_map.fmap_EQ_UPTO @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.pred_set.COMPL @ X2))) @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.pred_set.COMPL @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.pred_set.COMPL @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X3)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3)))))))))))))) (Tfinite_map.fmap_size_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.finite_map.fmap_size @ X0) @ X1) @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ (^[X3]: ((cHOL4.arithmetic.+ @ (X0 @ X3)) @ (X1 @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3))))) @ (cHOL4.finite_map.FDOM @ X2)))))))))) (Tfinite_map.FUNION_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ ((cHOL4.finite_map.FUNION @ X1) @ X2))) @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ X2))))))))) (Tfinite_map.FUNION_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ ((cHOL4.finite_map.FUNION @ X1) @ X0)))))))) (Tfinite_map.DOMSUB_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.FUNION @ X2) @ X1)) @ X0)) @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.\\ @ X2) @ X0)) @ ((cHOL4.finite_map.\\ @ X1) @ X0)))))))))) (Tfinite_map.FUNION_EQ_IMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ ((cHOL4.finite_map.FUNION @ X0) @ X2)))))))))) (Tfinite_map.FUNION_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ ((cHOL4.finite_map.FUNION @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tfinite_map.FEMPTY_SUBMAP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X0) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY))))) (Tfinite_map.SUBMAP_FUNION_ID,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.finite_map.SUBMAP @ X0) @ ((cHOL4.finite_map.FUNION @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X2)) @ (cHOL4.finite_map.FDOM @ X3))) @ ((cHOL4.finite_map.SUBMAP @ X3) @ ((cHOL4.finite_map.FUNION @ X2) @ X3))))))))) (Tfinite_map.SUBMAP_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.finite_map.SUBMAP @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.finite_map.SUBMAP @ X0) @ X2)))) @ ((cHOL4.finite_map.SUBMAP @ X0) @ ((cHOL4.finite_map.FUNION @ X1) @ X2)))))))))) (Tfinite_map.SUBMAP_FUNION_EQ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X0) @ ((cHOL4.finite_map.FUNION @ X1) @ X2))) @ ((cHOL4.finite_map.SUBMAP @ X0) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X3)) @ ((cHOL4.pred_set.DIFF @ (cHOL4.finite_map.FDOM @ X5)) @ (cHOL4.finite_map.FDOM @ X4)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X3) @ ((cHOL4.finite_map.FUNION @ X4) @ X5))) @ ((cHOL4.finite_map.SUBMAP @ X3) @ X4))))))))))) (Tfinite_map.FUNION_EQ_FEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.min.= @ X1) @ cHOL4.finite_map.FEMPTY)))))))) (Tfinite_map.FEVERY_DRESTRICT_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.finite_map.FEVERY @ X4) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X0))) @ (cHOL4.pred_set.COMPL @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))) @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X0)))) @ ((cHOL4.finite_map.FEVERY @ X4) @ ((cHOL4.finite_map.DRESTRICT @ X3) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ X1))))))))))))))))) (Tfinite_map.FUPDATE_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X2) @ X0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X2))))))))) (Tfinite_map.FEVERY_STRENGTHEN_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.finite_map.FEVERY @ X3) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.FEVERY @ X3) @ X2)) @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.finite_map.FEVERY @ X3) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))))))))))))) (Tfinite_map.FMAP_MAP2_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FMAP_MAP2 @ X3) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FMAP_MAP2 @ X3) @ X2)) @ ((cHOL4.pair.|comma| @ X0) @ (X3 @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))))) (Tfinite_map.FMAP_MAP2_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FMAP_MAP2 @ X0) @ cHOL4.finite_map.FEMPTY)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FMAP_MAP2_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FMAP_MAP2 @ X1) @ X0))) @ (cHOL4.finite_map.FDOM @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FMAP_MAP2 @ X1) @ X0)) @ X2)) @ (X1 @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2))))))))))))) (Tfinite_map.FUPDATE_PURGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))) (Tfinite_map.FMEQ_SINGLE_SIMPLE_DISJ_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X4)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X0) @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X1) @ X5)))))))))))))))))))) (Tfinite_map.FMEQ_SINGLE_SIMPLE_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X6) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ (X0 @ ((cHOL4.finite_map.FUPDATE @ X6) @ ((cHOL4.pair.|comma| @ X1) @ X5))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X4)) @ (X0 @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X3) @ X5))))))))))))))))))) (Tfinite_map.FMEQ_ENUMERATE_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ X2)) @ ((cHOL4.finite_map.FUPDATE_LIST @ cHOL4.finite_map.FEMPTY) @ X1))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1)))))))))) (Tfinite_map.FUPDATE_LIST_SAME_KEYS_UNWIND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X0) @ X2)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X2)) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X3))) @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X4)) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X0) @ X4)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X4)))))))))))))))) (Tfinite_map.FUPDATE_LIST_SAME_UPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X0)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X2) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.COMPL @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))))) @ ((cHOL4.finite_map.DRESTRICT @ X2) @ (cHOL4.pred_set.COMPL @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))))))))))))) (Tfinite_map.FDOM_FUPDATE_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X0))) @ ((cHOL4.pred_set.UNION @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))))))))) (Tfinite_map.FUPD11_SAME_UPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))))))))))))) (Tfinite_map.FUPD_SAME_KEY_UNWIND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X4)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X5))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X5)))))))))))))))))) (Tfinite_map.FUPD11_SAME_BASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.min.= @ X2) @ X4))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ X0)))))))))))))))))) (Tfinite_map.SAME_KEY_UPDATES_DIFFER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X4)))))))))))))))) (Tfinite_map.FUPD11_SAME_NEW_KEY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X4)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X3) @ X4))))))))))))))) (Tfinite_map.FUPD11_SAME_KEY_AND_BASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3)))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tfinite_map.FUPDATE_LIST_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X2) @ ((cHOL4.list.SNOC @ X1) @ X0))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUPDATE_LIST @ X2) @ X0)) @ X1))))))))) (Tfinite_map.FOLDL_FUPDATE_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ (^[X4]: (^[X5]: ((cHOL4.finite_map.FUPDATE @ X4) @ ((cHOL4.pair.|comma| @ (X0 @ X5)) @ (X1 @ X5)))))) @ X3) @ X2)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X3) @ ((cHOL4.list.MAP @ (^[X5]: ((cHOL4.pair.|comma| @ (X0 @ X5)) @ (X1 @ X5)))) @ X2)))))))))))) (Tfinite_map.FUPDATE_LIST_APPLY_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.EL @ X4) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((cHOL4.list.EL @ X4) @ ((cHOL4.list.MAP @ cHOL4.pair.SND) @ X0)))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X5)) @ ((cHOL4.prim_rec.< @ X5) @ (cHOL4.list.LENGTH @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X5) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))) @ X2))))))))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X0)) @ X2)) @ X3))))))))))))) (Tfinite_map.FEVERY_FUPDATE_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FEVERY @ X2) @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ X2) @ X0)) @ ((cHOL4.finite_map.FEVERY @ X2) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.COMPL @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))))))))))))))) (Tfinite_map.FUPDATE_FUPDATE_LIST_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X0))) @ X1)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X3) @ X1)))))))))))) (Tfinite_map.FUPDATE_FUPDATE_LIST_COMMUTES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X0))) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUPDATE_LIST @ X3) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X0))))))))))))) (Tfinite_map.FUPDATE_LIST_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X2) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ ((cHOL4.finite_map.FUPDATE_LIST @ ((cHOL4.finite_map.FUPDATE_LIST @ X2) @ X1)) @ X0))))))))) (Tfinite_map.FUPDATE_LIST_APPLY_NOT_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUPDATE_LIST @ X1) @ X0)) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))) (Tfinite_map.FUPDATE_LIST_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X0) @ cHOL4.list.NIL)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE_LIST @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE_LIST @ ((cHOL4.finite_map.FUPDATE @ X0) @ X1)) @ X2)))))))))) (Tfinite_map.SUBMAP_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)) @ X3)) @ ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.\\ @ X0) @ X2)) @ ((cHOL4.finite_map.\\ @ X1) @ X2)))))))))))))) (Tfinite_map.SUBMAP_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.SUBMAP @ X0) @ X1)) @ ((cHOL4.finite_map.SUBMAP @ X1) @ X2))) @ ((cHOL4.finite_map.SUBMAP @ X0) @ X2))))))))) (Tfinite_map.SUBMAP_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.SUBMAP @ X0) @ X1)) @ ((cHOL4.finite_map.SUBMAP @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tfinite_map.SUBMAP_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.finite_map.SUBMAP @ X0) @ X0)))) (Tfinite_map.SUBMAP_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.finite_map.SUBMAP @ cHOL4.finite_map.FEMPTY) @ X0)))) (Tfinite_map.fmap_EXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))))))))) (Tfinite_map.fmap_EQ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2))))))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tfinite_map.fmap_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ (cHOL4.finite_map.FAPPLY @ X0)) @ (cHOL4.finite_map.FAPPLY @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tfinite_map.NOT_FDOM_FAPPLY_FEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X1)))))))) (Tfinite_map.FM_PULL_APART,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X3)))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X2)))))))))))))) (Tfinite_map.fmap_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.finite_map.FEMPTY)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1)))) @ (X0 @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tfinite_map.FCARD_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.finite_map.FCARD @ X0)) @ (cHOL4.num.SUC @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FCARD @ X2)) @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4))))))))))))))))) (Tfinite_map.FCARD_0_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.finite_map.FCARD @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY))))) (Tfinite_map.FCARD_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FCARD @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ (cHOL4.finite_map.FCARD @ X0)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.finite_map.FCARD @ X0))))))))))) (Tfinite_map.FCARD_FEMPTY,((cHOL4.min.= @ (cHOL4.finite_map.FCARD @ cHOL4.finite_map.FEMPTY)) @ cHOL4.num.0)) (Tfinite_map.FDOM_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.finite_map.FDOM @ X0))))) (Tfinite_map.FDOM_F_FEMPTY1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0)))))) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY))))) (Tfinite_map.FDOM_EQ_EMPTY_SYM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY))))) (Tfinite_map.FDOM_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY))))) (Tfinite_map.fmap_SIMPLE_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.finite_map.FEMPTY)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tfinite_map.FDOM_EQ_FDOM_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ (cHOL4.finite_map.FDOM @ X0)))))))))) (Tfinite_map.NOT_EQ_FEMPTY_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfinite_map.FAPPLY_FUPDATE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X1)) @ X2) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X3)))))))))))) (Tfinite_map.FDOM_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.pred_set.INSERT @ X1) @ (cHOL4.finite_map.FDOM @ X0)))))))))) (Tfinite_map.FDOM_FEMPTY,((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ cHOL4.finite_map.FEMPTY)) @ cHOL4.pred_set.EMPTY)) (Tfinite_map.FUPDATE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3)))))))))))) (Tfinite_map.FUPDATE_COMMUTES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))))))) (Tfinite_map.NOT_EQ_FAPPLY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1)))))))))))) (Tfinite_map.FAPPLY_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X1)) @ X2)))))))) (Tfinite_map.is_fmap_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.finite_map.is_fmap @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (^[X1]: (cHOL4.sum.INR @ cHOL4.one.one)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ X1)) @ (cHOL4.sum.INL @ X3)) @ (X2 @ X4))))) @ (cHOL4.finite_map.is_fmap @ X2))))))))))))) (Tfinite_map.is_fmap_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ (^[X1]: (cHOL4.sum.INR @ cHOL4.one.one)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.finite_map.is_fmap @ X2)) @ (X0 @ X2))) @ (X0 @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ X1)) @ (cHOL4.sum.INL @ X3)) @ (X2 @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.finite_map.is_fmap @ X5)) @ (X0 @ X5)))))))) (Tfinite_map.is_fmap_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ (^[X1]: (cHOL4.sum.INR @ cHOL4.one.one)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X0 @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ X1)) @ (cHOL4.sum.INL @ X3)) @ (X2 @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.finite_map.is_fmap @ X5)) @ (X0 @ X5)))))))) (Tfinite_map.is_fmap_rules,((cHOL4.bool./\ @ (cHOL4.finite_map.is_fmap @ (^[X0]: (cHOL4.sum.INR @ cHOL4.one.one)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.finite_map.is_fmap @ X1)) @ (cHOL4.finite_map.is_fmap @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X0)) @ (cHOL4.sum.INL @ X2)) @ (X1 @ X3))))))))))))) (Tfinite_map.FUNION_FEMPTY_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ cHOL4.finite_map.FEMPTY) @ X0)) @ X0)))) (Tfinite_map.FUNION_FEMPTY_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ cHOL4.finite_map.FEMPTY)) @ X0)))) (Tfinite_map.FUNION_FUPDATE_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))) (Tfinite_map.FUNION_FUPDATE_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (Tfinite_map.EQ_FDOM_SUBMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.SUBMAP @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.finite_map.FDOM @ X0))))))))) (Tfinite_map.SUBMAP_FUPDATE_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X2) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ X2) @ X1)) @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X2)))))))))))) (Tfinite_map.DRESTRICT_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ cHOL4.finite_map.FEMPTY) @ X0)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.DRESTRICT_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)))))))))))) (Tfinite_map.STRONG_DRESTRICT_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.DRESTRICT @ X0) @ ((cHOL4.pred_set.DELETE @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (Tfinite_map.FDOM_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1))) @ ((cHOL4.pred_set.INTER @ (cHOL4.finite_map.FDOM @ X0)) @ X1))))))))) (Tfinite_map.NOT_FDOM_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))) @ X0))))))) (Tfinite_map.DRESTRICT_SUBMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ X0)))))) (Tfinite_map.DRESTRICT_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ X2)) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2)))))))))) (Tfinite_map.DRESTRICT_IS_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FUPDATE_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))) (Tfinite_map.STRONG_DRESTRICT_FUPDATE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.DRESTRICT @ X0) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ X1))) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ X1))))))))))))) (Tfinite_map.DRESTRICT_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ X0) @ cHOL4.pred_set.UNIV)) @ X0)))) (Tfinite_map.SUBMAP_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ X0)))))) (Tfinite_map.DRESTRICT_EQ_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X2)) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X2)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.DRESTRICT @ X1) @ X3)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X2) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.pred_set.INTER @ X3) @ (cHOL4.finite_map.FDOM @ X1))))))))))))))) (Tfinite_map.FDOM_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUNION @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1)))))))))) (Tfinite_map.FMERGE_DOMSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ (((cHOL4.finite_map.FMERGE @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.finite_map.FMERGE @ X0) @ ((cHOL4.finite_map.\\ @ X1) @ X3)) @ ((cHOL4.finite_map.\\ @ X2) @ X3)))))))))))) (Tfinite_map.SUBMAP_DOMSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.finite_map.SUBMAP @ ((cHOL4.finite_map.\\ @ X1) @ X0)) @ X1)))))) (Tfinite_map.fmap_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (Tfinite_map.DOMSUB_NOT_IN_DOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ X1) @ X0)) @ X1))))))) (Tfinite_map.o_f_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.o_f @ X3) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.o_f @ X3) @ ((cHOL4.finite_map.\\ @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X1) @ (X3 @ X0))))))))))))) (Tfinite_map.DOMSUB_COMMUTES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.\\ @ X2) @ X1)) @ X0)) @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.\\ @ X2) @ X0)) @ X1))))))))) (Tfinite_map.DOMSUB_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.\\ @ X1) @ X0)) @ X0)) @ ((cHOL4.finite_map.\\ @ X1) @ X0))))))) (Tfinite_map.o_f_DOMSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.o_f @ X1) @ X2)) @ X0)) @ ((cHOL4.finite_map.o_f @ X1) @ ((cHOL4.finite_map.\\ @ X2) @ X0)))))))))) (Tfinite_map.FRANGE_FUPDATE_DOMSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.pred_set.INSERT @ X2) @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.\\ @ X0) @ X1))))))))))) (Tfinite_map.DOMSUB_FLOOKUP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ cHOL4.option.NONE) @ ((cHOL4.finite_map.FLOOKUP @ X0) @ X2)))))))))) (Tfinite_map.DOMSUB_FLOOKUP_NEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ X2)) @ ((cHOL4.finite_map.FLOOKUP @ X0) @ X2)))))))))) (Tfinite_map.DOMSUB_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ X1)) @ cHOL4.option.NONE)))))) (Tfinite_map.DOMSUB_FAPPLY_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)))))))))) (Tfinite_map.DOMSUB_FAPPLY_NEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X2)))))))))) (Tfinite_map.DOMSUB_FAPPLY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.\\ @ X0) @ X1)) @ X1)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X1))))))) (Tfinite_map.FDOM_DOMSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.\\ @ X0) @ X1))) @ ((cHOL4.pred_set.DELETE @ (cHOL4.finite_map.FDOM @ X0)) @ X1))))))) (Tfinite_map.DOMSUB_FUPDATE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.finite_map.\\ @ X0) @ X2)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.\\ @ X0) @ X2)) @ ((cHOL4.pair.|comma| @ X1) @ X3))))))))))))) (Tfinite_map.DOMSUB_FUPDATE_NEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ X2)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.\\ @ X0) @ X2)) @ ((cHOL4.pair.|comma| @ X1) @ X3))))))))))))) (Tfinite_map.DOMSUB_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X1)) @ ((cHOL4.finite_map.\\ @ X0) @ X1))))))))) (Tfinite_map.DOMSUB_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.\\ @ cHOL4.finite_map.FEMPTY) @ X0)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FINITE_PRED_11,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool.IN @ (X0 @ X1)) @ (cHOL4.finite_map.FDOM @ X3)))))))))))) (Tfinite_map.FAPPLY_f_o,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.IN @ (X1 @ X2)) @ (cHOL4.finite_map.FDOM @ X0))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.f_o @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.f_o @ X0) @ X1)) @ X2)) @ ((cHOL4.finite_map.FAPPLY @ X0) @ (X1 @ X2)))))))))))) (Tfinite_map.f_o_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool.IN @ (X3 @ X4)) @ (cHOL4.finite_map.FDOM @ X0))))))) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.min.= @ (X3 @ X4)) @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.f_o @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X3)) @ (((cHOL4.finite_map.FMERGE @ (cHOL4.combin.C @ cHOL4.combin.K)) @ ((cHOL4.finite_map.f_o @ X0) @ X3)) @ ((cHOL4.finite_map.FUN_FMAP @ (cHOL4.combin.K @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.min.= @ (X3 @ X4)) @ X1))))))))))))))))) (Tfinite_map.f_o_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.f_o @ cHOL4.finite_map.FEMPTY) @ X0)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FDOM_f_o,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.IN @ (X1 @ X2)) @ (cHOL4.finite_map.FDOM @ X0))))))) @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.f_o @ X0) @ X1))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.IN @ (X1 @ X2)) @ (cHOL4.finite_map.FDOM @ X0)))))))))))) (Tfinite_map.FLOOKUP_FUN_FMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.FUN_FMAP @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X0) @ X2)) @ (cHOL4.option.SOME @ (X1 @ X0))) @ cHOL4.option.NONE)))))))))) (Tfinite_map.FDOM_FMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ X1))) @ X1))))))) (Tfinite_map.FRANGE_FMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)))))))) (Tfinite_map.FUN_FMAP_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.RRESTRICT_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.RRESTRICT @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.RRESTRICT @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.RRESTRICT @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))) @ X1)))))))))))) (Tfinite_map.RRESTRICT_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.RRESTRICT @ cHOL4.finite_map.FEMPTY) @ X0)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FRANGE_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.min.= @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.FUNION @ X1) @ X0))) @ ((cHOL4.pred_set.UNION @ (cHOL4.finite_map.FRANGE @ X1)) @ (cHOL4.finite_map.FRANGE @ X0))))))))) (Tfinite_map.FRANGE_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FRANGE @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X1) @ X2)) @ (cHOL4.option.SOME @ X0)))))))))) (Tfinite_map.o_f_FRANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FRANGE @ X1))) @ ((cHOL4.bool.IN @ (X2 @ X0)) @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.o_f @ X2) @ X1))))))))))) (Tfinite_map.FINITE_FRANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.finite_map.FRANGE @ X0))))) (Tfinite_map.SUBMAP_FRANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.finite_map.SUBMAP @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.finite_map.FRANGE @ X0)) @ (cHOL4.finite_map.FRANGE @ X1)))))))) (Tfinite_map.FRANGE_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.pred_set.INSERT @ X2) @ (cHOL4.finite_map.FRANGE @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))))))))))))) (Tfinite_map.FRANGE_FEMPTY,((cHOL4.min.= @ (cHOL4.finite_map.FRANGE @ cHOL4.finite_map.FEMPTY)) @ cHOL4.pred_set.EMPTY)) (Tfinite_map.FLOOKUP_o_f,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.o_f @ X2) @ X1)) @ X0)) @ (((cHOL4.option.option_CASE @ ((cHOL4.finite_map.FLOOKUP @ X1) @ X0)) @ cHOL4.option.NONE) @ (^[X3]: (cHOL4.option.SOME @ (X2 @ X3)))))))))))) (Tfinite_map.o_f_o_f,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.o_f @ X2) @ ((cHOL4.finite_map.o_f @ X1) @ X0))) @ ((cHOL4.finite_map.o_f @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) (Tfinite_map.FEVERY_o_f,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FEVERY @ X1) @ ((cHOL4.finite_map.o_f @ X2) @ X0))) @ ((cHOL4.finite_map.FEVERY @ (^[X3]: (X1 @ ((cHOL4.pair.|comma| @ (cHOL4.pair.FST @ X3)) @ (X2 @ (cHOL4.pair.SND @ X3)))))) @ X0))))))))) (Tfinite_map.o_f_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.o_f @ X0) @ cHOL4.finite_map.FEMPTY)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.o_f_FAPPLY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.finite_map.o_f @ X0) @ X1)) @ X2)) @ (X0 @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2))))))))))) (Tfinite_map.FDOM_o_f,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.o_f @ X0) @ X1))) @ (cHOL4.finite_map.FDOM @ X1))))))) (Tfinite_map.o_f_FDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.finite_map.FDOM @ ((cHOL4.finite_map.o_f @ X0) @ X1)))))))) (Tfinite_map.f_o_f_FEMPTY_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.f_o_f @ X0) @ cHOL4.finite_map.FEMPTY)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.f_o_f_FEMPTY_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.f_o_f @ cHOL4.finite_map.FEMPTY) @ X0)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FEVERY_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.FEVERY @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X1)) @ (cHOL4.option.SOME @ X0)))) @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ X0)))))))))))) (Tfinite_map.FEVERY_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FEVERY @ X0) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.bool./\ @ (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.finite_map.FEVERY @ X0) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))))))))))))))) (Tfinite_map.FEVERY_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.finite_map.FEVERY @ X0) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.FLOOKUP_EXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.finite_map.FLOOKUP @ X1)) @ (cHOL4.finite_map.FLOOKUP @ X0)))))))) (Tfinite_map.FLOOKUP_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.FUNION @ X2) @ X1)) @ X0)) @ (((cHOL4.option.option_CASE @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X0)) @ ((cHOL4.finite_map.FLOOKUP @ X1) @ X0)) @ (^[X3]: (cHOL4.option.SOME @ X3))))))))))) (Tfinite_map.SUBMAP_FUPDATE_FLOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X2) @ ((cHOL4.finite_map.FUPDATE @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X1)) @ (cHOL4.option.SOME @ X0))))))))))) (Tfinite_map.FLOOKUP_SUBMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.finite_map.SUBMAP @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X3) @ X1)) @ (cHOL4.option.SOME @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ X2) @ X1)) @ (cHOL4.option.SOME @ X0)))))))))))) (Tfinite_map.FLOOKUP_UPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X0))) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X1)) @ (cHOL4.option.SOME @ X0)) @ ((cHOL4.finite_map.FLOOKUP @ X3) @ X1)))))))))))) (Tfinite_map.FLOOKUP_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FLOOKUP @ cHOL4.finite_map.FEMPTY) @ X0)) @ cHOL4.option.NONE)))) (Tfinite_map.FMERGE_EQ_FEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.finite_map.FMERGE @ X0) @ X2) @ X1)) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.min.= @ X1) @ cHOL4.finite_map.FEMPTY)))))))))) (Tfinite_map.FMERGE_DRESTRICT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ (((cHOL4.finite_map.FMERGE @ X3) @ X2) @ X1)) @ X0)) @ (((cHOL4.finite_map.FMERGE @ X3) @ ((cHOL4.finite_map.DRESTRICT @ X2) @ X0)) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ X0)))))))))))) (Tfinite_map.FMERGE_ASSOC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.operator.ASSOC @ (cHOL4.finite_map.FMERGE @ X0))) @ (cHOL4.operator.ASSOC @ X0))))) (Tfinite_map.FMERGE_COMM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.operator.COMM @ (cHOL4.finite_map.FMERGE @ X0))) @ (cHOL4.operator.COMM @ X0))))) (Tfinite_map.FMERGE_NO_CHANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.finite_map.FMERGE @ X0) @ X2) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ ((X0 @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3))) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.finite_map.FMERGE @ X0) @ X2) @ X1)) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ ((X0 @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3))) @ ((cHOL4.finite_map.FAPPLY @ X1) @ X3))))))))))))))) (Tfinite_map.FUNION_FMERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ (((cHOL4.finite_map.FMERGE @ X2) @ X0) @ X1)) @ ((cHOL4.finite_map.FUNION @ X0) @ X1)))))))))) (Tfinite_map.FMERGE_FUNION,((cHOL4.min.= @ cHOL4.finite_map.FUNION) @ (cHOL4.finite_map.FMERGE @ (^[X0]: (^[X1]: X0))))) (Tfinite_map.FDOM_FMERGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ (((cHOL4.finite_map.FMERGE @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.finite_map.FDOM @ X2)))))))))) (Tfinite_map.FMERGE_FEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.finite_map.FMERGE @ X0) @ X1) @ cHOL4.finite_map.FEMPTY)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.finite_map.FMERGE @ X0) @ cHOL4.finite_map.FEMPTY) @ X1)) @ X1))))))) (Tfinite_map.FUNION_IDEMPOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ X0)) @ X0)))) (Tfinite_map.DRESTRICT_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X2))) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2)))))))))) (Tfinite_map.DRESTRICT_EQ_FUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.finite_map.FDOM @ X1)) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X1) @ X2)) @ X0))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ (cHOL4.pred_set.COMPL @ (cHOL4.finite_map.FDOM @ X1)))))))))))) (Tfinite_map.IN_FDOM_FOLDR_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ (((cHOL4.list.FOLDR @ cHOL4.finite_map.FUNION) @ cHOL4.finite_map.FEMPTY) @ X1)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ X2))))))))))) (Tfinite_map.DRESTRICT_FUNION_DRESTRICT_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.DRESTRICT @ X1) @ X0)) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.COMPL @ X0)))) @ X1)))))) (Tfinite_map.DRESTRICT_IDEMPOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1)) @ X1)) @ ((cHOL4.finite_map.DRESTRICT @ X0) @ X1))))))) (Tfinite_map.SUBMAP_FUNION_ABSORPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.SUBMAP @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUNION @ X0) @ X1)) @ X1))))))) (Tfinite_map.MAP_KEYS_witness,((cHOL4.bool.LET @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((X0 @ X1) @ X2))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.finite_map.FDOM @ X2)))) @ ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X1) @ (cHOL4.finite_map.FDOM @ X2)) @ cHOL4.pred_set.UNIV)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((X0 @ X1) @ X2)) @ (X1 @ X3))) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3))))))))))))) @ (^[X1]: (^[X2]: (((cHOL4.bool.COND @ (((cHOL4.pred_set.INJ @ X1) @ (cHOL4.finite_map.FDOM @ X2)) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.finite_map.f_o_f @ X2) @ ((cHOL4.finite_map.FUN_FMAP @ ((cHOL4.pred_set.LINV @ X1) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.finite_map.FDOM @ X2))))) @ ((cHOL4.finite_map.FUN_FMAP @ cHOL4.bool.ARB) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.finite_map.FDOM @ X2)))))))) (Tfinite_map.MAP_KEYS_FEMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ cHOL4.finite_map.FEMPTY)) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.MAP_KEYS_FUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ (X0 @ X2)) @ X3))))))))))))) (Tfinite_map.MAP_KEYS_using_LINV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ (cHOL4.finite_map.FDOM @ X1)) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.finite_map.MAP_KEYS @ X0) @ X1)) @ ((cHOL4.finite_map.f_o_f @ X1) @ ((cHOL4.finite_map.FUN_FMAP @ ((cHOL4.pred_set.LINV @ X0) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.finite_map.FDOM @ X1))))))))))) (Tfinite_map.fmap_rel_FUPDATE_same,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.finite_map.fmap_rel @ X5) @ X4) @ X3)) @ ((X5 @ X1) @ X0))) @ (((cHOL4.finite_map.fmap_rel @ X5) @ ((cHOL4.finite_map.FUPDATE @ X4) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X0))))))))))))))))) (Tfinite_map.fmap_rel_FUPDATE_LIST_same,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.finite_map.fmap_rel @ X0) @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X1)) @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X2))) @ (((cHOL4.list.LIST_REL @ X0) @ ((cHOL4.list.MAP @ cHOL4.pair.SND) @ X1)) @ ((cHOL4.list.MAP @ cHOL4.pair.SND) @ X2))))) @ (((cHOL4.finite_map.fmap_rel @ X0) @ ((cHOL4.finite_map.FUPDATE_LIST @ X3) @ X1)) @ ((cHOL4.finite_map.FUPDATE_LIST @ X4) @ X2)))))))))))))) (Tfinite_map.fmap_rel_FEMPTY,(cHOL4.bool.! @ (^[X0]: (((cHOL4.finite_map.fmap_rel @ X0) @ cHOL4.finite_map.FEMPTY) @ cHOL4.finite_map.FEMPTY)))) (Tfinite_map.fmap_rel_FEMPTY2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.finite_map.fmap_rel @ X1) @ cHOL4.finite_map.FEMPTY) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY))) @ ((cHOL4.min.= @ (((cHOL4.finite_map.fmap_rel @ X1) @ X0) @ cHOL4.finite_map.FEMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.finite_map.FEMPTY)))))))) (Tfinite_map.fmap_rel_refl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ (((cHOL4.finite_map.fmap_rel @ X1) @ X0) @ X0))))))) (Tfinite_map.fmap_rel_FUNION_rels,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.finite_map.fmap_rel @ X4) @ X3) @ X2)) @ (((cHOL4.finite_map.fmap_rel @ X4) @ X1) @ X0))) @ (((cHOL4.finite_map.fmap_rel @ X4) @ ((cHOL4.finite_map.FUNION @ X3) @ X1)) @ ((cHOL4.finite_map.FUNION @ X2) @ X0)))))))))))))) (Tfinite_map.fmap_rel_FUPDATE_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.finite_map.fmap_rel @ X5) @ ((cHOL4.finite_map.\\ @ X4) @ X2)) @ ((cHOL4.finite_map.\\ @ X3) @ X2))) @ ((X5 @ X1) @ X0))) @ (((cHOL4.finite_map.fmap_rel @ X5) @ ((cHOL4.finite_map.FUPDATE @ X4) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.finite_map.FUPDATE @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X0))))))))))))))))) (Tfinite_map.fmap_rel_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X3 @ X4) @ X5)) @ ((X2 @ X4) @ X5))))))) @ ((cHOL4.min.==> @ (((cHOL4.finite_map.fmap_rel @ X3) @ X1) @ X0)) @ (((cHOL4.finite_map.fmap_rel @ X2) @ X1) @ X0)))))))))))) (Tfinite_map.fmap_EQ_UPTO___EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.finite_map.fmap_EQ_UPTO @ X0) @ X1) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tfinite_map.fmap_EQ_UPTO___EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.finite_map.fmap_EQ_UPTO @ X1) @ X1) @ X0)))))) (Tfinite_map.fmap_EQ_UPTO___FUPDATE_BOTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.finite_map.fmap_EQ_UPTO @ X0) @ X1) @ X2)) @ (((cHOL4.finite_map.fmap_EQ_UPTO @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.pred_set.DELETE @ X2) @ X3)))))))))))))) (Tfinite_map.fmap_EQ_UPTO___FUPDATE_BOTH___NO_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.finite_map.fmap_EQ_UPTO @ X0) @ X1) @ X2)) @ (((cHOL4.finite_map.fmap_EQ_UPTO @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.finite_map.FUPDATE @ X1) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ X2))))))))))))) (Tfinite_map.fmap_EQ_UPTO___FUPDATE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.finite_map.fmap_EQ_UPTO @ X0) @ X1) @ X2)) @ (((cHOL4.finite_map.fmap_EQ_UPTO @ ((cHOL4.finite_map.FUPDATE @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ X1) @ ((cHOL4.pred_set.INSERT @ X3) @ X2)))))))))))))) (TfixedPoint.monotone_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ ((cHOL4.pred_set.SUBSET @ (X0 @ X1)) @ (X0 @ X2))))))))))) (TfixedPoint.lfp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fixedPoint.lfp @ X0)) @ (cHOL4.pred_set.BIGINTER @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pred_set.SUBSET @ (X0 @ X1)) @ X1))))))))) (TfixedPoint.gfp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fixedPoint.gfp @ X0)) @ (cHOL4.pred_set.BIGUNION @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pred_set.SUBSET @ X1) @ (X0 @ X1)))))))))) (TfixedPoint.closed_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fixedPoint.closed @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (X0 @ X1)) @ X1))))))) (TfixedPoint.dense_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fixedPoint.dense @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (X0 @ X1)))))))) (TfixedPoint.fnsum_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fixedPoint.fnsum @ X0) @ X1) @ X2)) @ ((cHOL4.pred_set.UNION @ (X0 @ X2)) @ (X1 @ X2)))))))))) (TfixedPoint.empty_def,((cHOL4.min.= @ cHOL4.fixedPoint.empty) @ (^[X0]: cHOL4.pred_set.EMPTY))) (TfixedPoint.lfp_least_closed,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.fixedPoint.closed @ X0) @ (cHOL4.fixedPoint.lfp @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fixedPoint.closed @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.fixedPoint.lfp @ X0)) @ X1))))))))) (TfixedPoint.gfp_greatest_dense,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.fixedPoint.dense @ X0) @ (cHOL4.fixedPoint.gfp @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fixedPoint.dense @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.fixedPoint.gfp @ X0)))))))))) (TfixedPoint.lfp_fixedpoint,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.fixedPoint.lfp @ X0)) @ (X0 @ (cHOL4.fixedPoint.lfp @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ (X0 @ X1))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.fixedPoint.lfp @ X0)) @ X1))))))))) (TfixedPoint.gfp_greatest_fixedpoint,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.fixedPoint.gfp @ X0)) @ (X0 @ (cHOL4.fixedPoint.gfp @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ (X0 @ X1))) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.fixedPoint.gfp @ X0)))))))))) (TfixedPoint.lfp_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ (X0 @ X1)) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.fixedPoint.lfp @ X0)) @ X1)))))))) (TfixedPoint.gfp_coinduction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ (X0 @ X1))) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.fixedPoint.gfp @ X0))))))))) (TfixedPoint.lfp_strong_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ (X0 @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.fixedPoint.lfp @ X0)))) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.fixedPoint.lfp @ X0)) @ X1)))))))) (TfixedPoint.gfp_strong_coinduction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ (X0 @ ((cHOL4.pred_set.UNION @ X1) @ (cHOL4.fixedPoint.gfp @ X0))))) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.fixedPoint.gfp @ X0))))))))) (TfixedPoint.fnsum_monotone,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.fixedPoint.monotone @ X1))) @ (cHOL4.fixedPoint.monotone @ ((cHOL4.fixedPoint.fnsum @ X0) @ X1)))))))) (TfixedPoint.empty_monotone,(cHOL4.fixedPoint.monotone @ cHOL4.fixedPoint.empty)) (TfixedPoint.fnsum_empty,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.fixedPoint.fnsum @ X0) @ cHOL4.fixedPoint.empty)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.fixedPoint.fnsum @ cHOL4.fixedPoint.empty) @ X0)) @ X0))))) (TfixedPoint.fnsum_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fixedPoint.fnsum @ X0) @ ((cHOL4.fixedPoint.fnsum @ X1) @ X2))) @ ((cHOL4.fixedPoint.fnsum @ ((cHOL4.fixedPoint.fnsum @ X0) @ X1)) @ X2))))))))) (TfixedPoint.fnsum_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fixedPoint.fnsum @ X0) @ X1)) @ ((cHOL4.fixedPoint.fnsum @ X1) @ X0))))))) (TfixedPoint.fnsum_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (X0 @ X2)) @ (((cHOL4.fixedPoint.fnsum @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.SUBSET @ (X1 @ X2)) @ (((cHOL4.fixedPoint.fnsum @ X0) @ X1) @ X2)))))))))) (TfixedPoint.lfp_fnsum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.fixedPoint.monotone @ X0)) @ (cHOL4.fixedPoint.monotone @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.fixedPoint.lfp @ X0)) @ (cHOL4.fixedPoint.lfp @ ((cHOL4.fixedPoint.fnsum @ X0) @ X1)))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.fixedPoint.lfp @ X1)) @ (cHOL4.fixedPoint.lfp @ ((cHOL4.fixedPoint.fnsum @ X0) @ X1)))))))))) (TfixedPoint.lfp_rule_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.fixedPoint.monotone @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.fixedPoint.lfp @ X0))) @ ((cHOL4.bool.IN @ X2) @ (X0 @ X1))))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.fixedPoint.lfp @ X0)))))))))) (TfixedPoint.lfp_empty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.fixedPoint.monotone @ X0)) @ ((cHOL4.bool.IN @ X1) @ (X0 @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.fixedPoint.lfp @ X0)))))))) (Tfloat.error_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.float.error @ X0)) @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))) @ X0))))) (Tfloat.normalizes,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.float.normalizes @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.bias @ cHOL4.ieee.float_format)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))))) (Tfloat.FLOAT_DIV_RELATIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.ieee.Iszero @ X1))) @ (cHOL4.float.normalizes @ ((cHOL4.real./ @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_div @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X2)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_div @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))))) (Tfloat.FLOAT_MUL_RELATIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ (cHOL4.float.normalizes @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_mul @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X2)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))))) (Tfloat.FLOAT_SUB_RELATIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ (cHOL4.float.normalizes @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_sub @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X2)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_sub @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))))) (Tfloat.FLOAT_ADD_RELATIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ (cHOL4.float.normalizes @ ((cHOL4.realax.real_add @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_add @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X2)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_add @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_add @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))))) (Tfloat.Val_FLOAT_ROUND_VALOF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))) @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))))) (Tfloat.FLOAT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.ieee.Iszero @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real./ @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format)))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_div @ X0) @ X1))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_div @ X0) @ X1))) @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ (cHOL4.float.error @ ((cHOL4.real./ @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))))))))))) (Tfloat.FLOAT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_mul @ X0) @ X1))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_mul @ X0) @ X1))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ (cHOL4.float.error @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))))))))))) (Tfloat.FLOAT_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_sub @ X0) @ X1))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ ((cHOL4.ieee.float_sub @ X0) @ X1))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))) @ (cHOL4.float.error @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))))))))))) (Tfloat.REAL_POW_LE_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X1) @ X0)))))))) (Tfloat.REAL_POW_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))))) (Tfloat.REAL_LE_RCANCEL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))))) (Tfloat.REAL_LT_RCANCEL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))) @ ((cHOL4.realax.real_lt @ X0) @ X1))))))))) (Tfloat.VALOF_SCALE_DOWN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X1) @ X2)) @ X3)))) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))))))))))))))) (Tfloat.VALOF_SCALE_UP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X3)))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))))))))))))))) (Tfloat.ERROR_BOUND_LEMMA8,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))) @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)))))))))))))))) (Tfloat.ERROR_BOUND_LEMMA7,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))) @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))))))))))))) (Tfloat.EXP_LT_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.EXP @ X1) @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))))))) (Tfloat.ERROR_BOUND_LEMMA6,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))) (Tfloat.REAL_LE_LCANCEL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))) @ ((cHOL4.real.real_lte @ X1) @ X2))))))))) (Tfloat.REAL_MUL_AC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X2) @ X1)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ X2) @ X1)) @ X0)) @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.realax.real_mul @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.realax.real_mul @ X1) @ X0))) @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.realax.real_mul @ X2) @ X0)))))))))))) (Tfloat.ERROR_BOUND_LEMMA5,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))) @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ (cHOL4.ieee.bias @ cHOL4.ieee.float_format))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.num.SUC @ (cHOL4.ieee.bias @ cHOL4.ieee.float_format)))) @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)))))))))))))))) (Tfloat.ERROR_BOUND_LEMMA4,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))) @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.ieee.bias @ cHOL4.ieee.float_format))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.num.SUC @ (cHOL4.ieee.bias @ cHOL4.ieee.float_format)))) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))))))))))))) (Tfloat.ERROR_BOUND_LEMMA3,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))) (Tfloat.ERROR_BOUND_LEMMA2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))) (Tfloat.ERROR_BOUND_LEMMA1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))) (Tfloat.REAL_OF_NUM_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tfloat.TWO_EXP_GE_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tfloat.egtff,((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tfloat.ftt,((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Tfloat.tpetfs,((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tfloat.egt1,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tfloat.temonz,(cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0))) (Tfloat.tteettto,((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfloat.tptteteesze,((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))) (Tfloat.tfflttfs,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tfloat.inv23gt0,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Tfloat.v23not0,(cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) (Tfloat.v127not0,(cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) (Tfloat.noteteeszegtz,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))) (Tfloat.lt1eqmul,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))) (Tfloat.twogz,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Tfloat.not2eqz,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) (Tfloat.tittfittt,((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Tfloat.ttpinv,((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Tfloat.RRRC1,((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tfloat.RRRC2,((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tfloat.RRRC3,((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tfloat.RRRC4,((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Tfloat.RRRC5,((cHOL4.realax.real_lt @ (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tfloat.RRRC6,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tfloat.RRRC7,((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tfloat.RRRC8,((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Tfloat.RRRC9,((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Tfloat.RRRC10,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (Tfloat.RRRC11,((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tfloat.sucminmullt,((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tfloat.SIGN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.sign @ X0)) @ (cHOL4.pair.FST @ X0))))) (Tfloat.EXPONENT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.exponent @ X0)) @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X0)))))) (Tfloat.FRACTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.fraction @ X0)) @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X0)))))) (Tfloat.IS_VALID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_valid @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.sign @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.exponent @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.expwidth @ X0)))) @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.fraction @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.fracwidth @ X0))))))))))) (Tfloat.VALOF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.valof @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.exponent @ X1)) @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.ieee.sign @ X1))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.bias @ X0))))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.ieee.fraction @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.fracwidth @ X0))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.ieee.sign @ X1))) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.exponent @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.bias @ X0))))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.ieee.fraction @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.fracwidth @ X0)))))))))))) (Tfloat.IS_VALID_DEFLOAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.ieee.is_valid @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0))))) (Tfloat.ADD_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ X1)))))) (Tfloat.REAL_OF_NUM_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ X1)) @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X1) @ X0))))))))) (Tfloat.IS_FINITE_ALT1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_normal @ cHOL4.ieee.float_format) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_denormal @ cHOL4.ieee.float_format) @ X0)) @ ((cHOL4.ieee.is_zero @ cHOL4.ieee.float_format) @ X0)))) @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.exponent @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Tfloat.IS_FINITE_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.ieee.is_finite @ cHOL4.ieee.float_format) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ cHOL4.ieee.float_format) @ X0)) @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.exponent @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tfloat.IS_FINITE_EXPLICIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.ieee.is_finite @ cHOL4.ieee.float_format) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.sign @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.exponent @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.fraction @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))) (Tfloat.LT_SUC_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tfloat.FLOAT_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.ieee.Isnan @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.ieee.Infinity @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.ieee.Isnormal @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.ieee.Isdenormal @ X0)) @ (cHOL4.ieee.Iszero @ X0)))))))) (Tfloat.FLOAT_CASES_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.ieee.Isnan @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.ieee.Infinity @ X0)) @ (cHOL4.ieee.Finite @ X0)))))) (Tfloat.FLOAT_DISTINCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnan @ X0)) @ (cHOL4.ieee.Infinity @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnan @ X0)) @ (cHOL4.ieee.Isnormal @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnan @ X0)) @ (cHOL4.ieee.Isdenormal @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnan @ X0)) @ (cHOL4.ieee.Iszero @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Infinity @ X0)) @ (cHOL4.ieee.Isnormal @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Infinity @ X0)) @ (cHOL4.ieee.Isdenormal @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Infinity @ X0)) @ (cHOL4.ieee.Iszero @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnormal @ X0)) @ (cHOL4.ieee.Isdenormal @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnormal @ X0)) @ (cHOL4.ieee.Iszero @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isdenormal @ X0)) @ (cHOL4.ieee.Iszero @ X0))))))))))))))) (Tfloat.FLOAT_DISTINCT_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnan @ X0)) @ (cHOL4.ieee.Infinity @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Isnan @ X0)) @ (cHOL4.ieee.Finite @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (cHOL4.ieee.Infinity @ X0)) @ (cHOL4.ieee.Finite @ X0)))))))) (Tfloat.FLOAT_INFINITIES_SIGNED,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ (cHOL4.ieee.defloat @ cHOL4.ieee.Plus_infinity))) @ cHOL4.num.0)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ (cHOL4.ieee.defloat @ cHOL4.ieee.Minus_infinity))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tfloat.INFINITY_IS_INFINITY,((cHOL4.bool./\ @ (cHOL4.ieee.Infinity @ cHOL4.ieee.Plus_infinity)) @ (cHOL4.ieee.Infinity @ cHOL4.ieee.Minus_infinity))) (Tfloat.ZERO_IS_ZERO,((cHOL4.bool./\ @ (cHOL4.ieee.Iszero @ cHOL4.ieee.Plus_zero)) @ (cHOL4.ieee.Iszero @ cHOL4.ieee.Minus_zero))) (Tfloat.INFINITY_NOT_NAN,((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.ieee.Isnan @ cHOL4.ieee.Plus_infinity))) @ (cHOL4.bool.~ @ (cHOL4.ieee.Isnan @ cHOL4.ieee.Minus_infinity)))) (Tfloat.ZERO_NOT_NAN,((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.ieee.Isnan @ cHOL4.ieee.Plus_zero))) @ (cHOL4.bool.~ @ (cHOL4.ieee.Isnan @ cHOL4.ieee.Minus_zero)))) (Tfloat.FLOAT_INFINITIES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Infinity @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.float_eq @ X0) @ cHOL4.ieee.Plus_infinity)) @ ((cHOL4.ieee.float_eq @ X0) @ cHOL4.ieee.Minus_infinity)))))) (Tfloat.FLOAT_INFINITES_DISTINCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.ieee.float_eq @ X0) @ cHOL4.ieee.Plus_infinity)) @ ((cHOL4.ieee.float_eq @ X0) @ cHOL4.ieee.Minus_infinity)))))) (Tfloat.FLOAT_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ (cHOL4.ieee.Finite @ X1))) @ ((cHOL4.min.= @ ((cHOL4.ieee.float_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))))))))) (Tfloat.FLOAT_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ (cHOL4.ieee.Finite @ X1))) @ ((cHOL4.min.= @ ((cHOL4.ieee.float_gt @ X0) @ X1)) @ ((cHOL4.real.real_gt @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))))))))) (Tfloat.FLOAT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ (cHOL4.ieee.Finite @ X1))) @ ((cHOL4.min.= @ ((cHOL4.ieee.float_le @ X0) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))))))))) (Tfloat.FLOAT_GE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ (cHOL4.ieee.Finite @ X1))) @ ((cHOL4.min.= @ ((cHOL4.ieee.float_ge @ X0) @ X1)) @ ((cHOL4.real.real_ge @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))))))))) (Tfloat.FLOAT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ (cHOL4.ieee.Finite @ X1))) @ ((cHOL4.min.= @ ((cHOL4.ieee.float_eq @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1))))))))) (Tfloat.FLOAT_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.ieee.float_eq @ X0) @ X0)) @ (cHOL4.bool.~ @ (cHOL4.ieee.Isnan @ X0)))))) (Tfloat.EXP_GT_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tfloat.IS_VALID_SPECIAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ X0) @ (cHOL4.ieee.minus_infinity @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ X0) @ (cHOL4.ieee.plus_infinity @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ X0) @ (cHOL4.ieee.topfloat @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ X0) @ (cHOL4.ieee.bottomfloat @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ X0) @ (cHOL4.ieee.plus_zero @ X0))) @ ((cHOL4.ieee.is_valid @ X0) @ (cHOL4.ieee.minus_zero @ X0)))))))))) (Tfloat.IS_CLOSEST_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.? @ (^[X3]: ((((cHOL4.ieee.is_closest @ X0) @ X2) @ X1) @ X3)))))))))))) (Tfloat.CLOSEST_IS_EVERYTHING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool./\ @ ((((cHOL4.ieee.is_closest @ X0) @ X2) @ X3) @ ((((cHOL4.ieee.closest @ X0) @ X1) @ X2) @ X3))) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((((cHOL4.ieee.is_closest @ X0) @ X2) @ X3) @ X4)) @ (X1 @ X4))))) @ (X1 @ ((((cHOL4.ieee.closest @ X0) @ X1) @ X2) @ X3))))))))))))))) (Tfloat.CLOSEST_IN_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X3)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool.IN @ ((((cHOL4.ieee.closest @ X0) @ X1) @ X3) @ X2)) @ X3)))))))))))) (Tfloat.CLOSEST_IS_CLOSEST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X3)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.pred_set.EMPTY))) @ ((((cHOL4.ieee.is_closest @ X0) @ X3) @ X2) @ ((((cHOL4.ieee.closest @ X0) @ X1) @ X3) @ X2))))))))))))) (Tfloat.FLOAT_FIRSTCROSS1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.pair.UNCURRY @ (^[X5]: (cHOL4.pair.UNCURRY @ (^[X6]: (^[X7]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7))))))) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X4)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X4))) @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X4))) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X0))) @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X0))) @ X3))))))))))))) (Tfloat.FLOAT_FIRSTCROSS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X0))) @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X0))) @ X3)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.pair.UNCURRY @ (^[X5]: (cHOL4.pair.UNCURRY @ (^[X6]: (^[X7]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7))))))) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X4)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X4))) @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X4))) @ X3)))))))))))))))) (Tfloat.FLOAT_FIRSTCROSS3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X0))) @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X0))) @ X3)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.pair.UNCURRY @ (^[X5]: (cHOL4.pair.UNCURRY @ (^[X6]: (^[X7]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7))))))) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X4)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X4))) @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X4))) @ X3)))))))))))))))) (Tfloat.FLOAT_FIRSTCROSS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X3)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X3))) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X3))) @ X2))))))) @ ((cHOL4.pred_set.IMAGE @ (cHOL4.pair.UNCURRY @ (^[X4]: (cHOL4.pair.UNCURRY @ (^[X5]: (^[X6]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6)))))))) @ ((cHOL4.pred_set.CROSS @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.prim_rec.< @ X4) @ X0))))) @ ((cHOL4.pred_set.CROSS @ (cHOL4.pred_set.GSPEC @ (^[X5]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.prim_rec.< @ X5) @ X1))))) @ (cHOL4.pred_set.GSPEC @ (^[X6]: ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.prim_rec.< @ X6) @ X2))))))))))))))) (Tfloat.FLOAT_COUNTINDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.prim_rec.< @ X1) @ cHOL4.num.0))))) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.num.SUC @ X0)))))) @ ((cHOL4.pred_set.INSERT @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))))) (Tfloat.FLOAT_FINITECOUNT,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))) (Tfloat.FINITE_R3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ X3)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ (cHOL4.pair.SND @ X3))) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.pair.SND @ (cHOL4.pair.SND @ X3))) @ X2)))))))))))))) (Tfloat.REAL_OF_NUM_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ X0)) @ X1)) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.EXP @ X0) @ X1)))))))) (Tfloat.IS_VALID_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_valid @ X0) @ X1)))))))) (Tfloat.FLOAT_IS_FINITE_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_finite @ X0) @ X1))))) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_valid @ X0) @ X1)))))))) (Tfloat.MATCH_FLOAT_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_finite @ X0) @ X1))))) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_valid @ X0) @ X1)))))) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_finite @ X0) @ X1))))))))) (Tfloat.IS_FINITE_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_finite @ X0) @ X1)))))))) (Tfloat.IS_VALID_NONEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_valid @ X0) @ X1))))) @ cHOL4.pred_set.EMPTY))))) (Tfloat.IS_FINITE_NONEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.ieee.is_finite @ X0) @ X1))))) @ cHOL4.pred_set.EMPTY))))) (Tfloat.IS_FINITE_CLOSEST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.ieee.is_finite @ X0) @ ((((cHOL4.ieee.closest @ X1) @ X2) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.ieee.is_finite @ X0) @ X4))))) @ X3))))))))))) (Tfloat.IS_VALID_CLOSEST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.ieee.is_valid @ X0) @ ((((cHOL4.ieee.closest @ X1) @ X2) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.ieee.is_finite @ X0) @ X4))))) @ X3))))))))))) (Tfloat.IS_VALID_ROUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.ieee.is_valid @ X0) @ (((cHOL4.ieee.round @ X0) @ cHOL4.ieee.To_nearest) @ X1))))))) (Tfloat.DEFLOAT_FLOAT_ROUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ieee.defloat @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X1)))) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X1))))))) (Tfloat.DEFLOAT_FLOAT_ZEROSIGN_ROUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ieee.defloat @ (cHOL4.ieee.float @ (((cHOL4.ieee.zerosign @ cHOL4.ieee.float_format) @ X1) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0))))) @ (((cHOL4.ieee.zerosign @ cHOL4.ieee.float_format) @ X1) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))))))) (Tfloat.VALOF_DEFLOAT_FLOAT_ZEROSIGN_ROUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ (cHOL4.ieee.float @ (((cHOL4.ieee.zerosign @ cHOL4.ieee.float_format) @ X1) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))))) @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))))))) (Tfloat.REAL_ABS_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ X0))))) (Tfloat.REAL_ABS_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real.pow @ X0) @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.abs @ X0)) @ X1))))))) (Tfloat.ISFINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.ieee.is_finite @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tfloat.REAL_ABS_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.inv @ (cHOL4.real.abs @ X0)))))) (Tfloat.REAL_ABS_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real./ @ X0) @ X1))) @ ((cHOL4.real./ @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1)))))))) (Tfloat.REAL_LT_LCANCEL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) (Tfloat.ERROR_IS_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ X0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.float.error @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Tfloat.ERROR_AT_WORST_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))) @ (cHOL4.ieee.Finite @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.float.error @ X1))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ X1))))))))) (Tfloat.BOUND_AT_WORST_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))) @ ((cHOL4.ieee.is_finite @ cHOL4.ieee.float_format) @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X1))) @ X1))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ X0)) @ X1))))))))) (Tfloat.VAL_THRESHOLD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ (cHOL4.ieee.Val @ X0))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format)))))) (Tfloat.FLOAT_THRESHOLD_EXPLICIT,((cHOL4.min.= @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Tfloat.ISFINITE_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ (cHOL4.ieee.float @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))) @ ((cHOL4.ieee.is_valid @ cHOL4.ieee.float_format) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))) (Tfloat.VAL_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.ieee.Val @ X0))) @ (cHOL4.ieee.largest @ cHOL4.ieee.float_format)))))) (Tfloat.REAL_POW_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.pow @ X2) @ X0)) @ ((cHOL4.real.pow @ X2) @ X1)))))))))) (Tfloat.ERROR_BOUND_BIG1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X2)) @ X0))) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))))) (Tfloat.ERROR_BOUND_BIG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.real.abs @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.float.error @ X1))) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))) (Tfloat.REAL_LE_INV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.realax.inv @ X1)) @ (cHOL4.realax.inv @ X0)))))))) (Tfloat.ERROR_BOUND_SMALL1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1)))) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X2)) @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))) (Tfloat.ERROR_BOUND_SMALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X0)))) @ (cHOL4.real.abs @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)))) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.float.error @ X1))) @ (cHOL4.realax.inv @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))) (Tfloat.ERROR_BOUND_TINY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.float.error @ X0))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tfloat.ERROR_BOUND_NORM_STRONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.float.error @ X0))) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))) (Tfloat.THRESHOLD_MUL_LT,((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tfloat.THRESHOLD_LT_POW_INV,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (Tfloat.LT_THRESHOLD_LT_POW_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.ieee.threshold @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))) (Tfloat.REAL_POS_IN_BINADE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.float.normalizes @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ cHOL4.ieee.float_format)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))) (Tfloat.REAL_NEG_IN_BINADE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.float.normalizes @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.real_neg @ X0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ cHOL4.ieee.float_format)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.realax.real_neg @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))) (Tfloat.REAL_IN_BINADE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.float.normalizes @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ cHOL4.ieee.float_format)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))))) (Tfloat.ERROR_BOUND_NORM_STRONG_NORMALIZE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.float.normalizes @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.float.error @ X0))) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))) (Tfloat.RELATIVE_ERROR_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.float.normalizes @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X1)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))) @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))))) (Tfloat.RELATIVE_ERROR_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.float.normalizes @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X1)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))) @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))))) (Tfloat.RELATIVE_ERROR_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.float.normalizes @ X0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X1)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))) @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))))) (Tfloat.RELATIVE_ERROR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.float.normalizes @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X1)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ (cHOL4.ieee.Val @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))) @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))))) (Tfloat.DEFLOAT_FLOAT_ZEROSIGN_ROUND_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))) @ ((cHOL4.ieee.is_finite @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ (cHOL4.ieee.float @ (((cHOL4.ieee.zerosign @ cHOL4.ieee.float_format) @ X0) @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X1))))))))))) (Tfloat.FLOAT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.realax.real_add @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_add @ X0) @ X1)))))))) (Tfloat.FLOAT_SUB_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_sub @ X0) @ X1)))))))) (Tfloat.FLOAT_MUL_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.ieee.Finite @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.realax.real_mul @ (cHOL4.ieee.Val @ X0)) @ (cHOL4.ieee.Val @ X1)))) @ (cHOL4.ieee.threshold @ cHOL4.ieee.float_format))))) @ (cHOL4.ieee.Finite @ ((cHOL4.ieee.float_mul @ X0) @ X1)))))))) (Tfmapal.ORL_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.ORL_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X4]: (^[X7]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X8]: (^[X3]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X9) @ X10)) @ (cHOL4.list.LIST_TO_SET @ X3))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X4) @ X2) @ X9)) @ cHOL4.toto.LESS)))))))))))))))))))))) (Tfmapal.ORL_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ (cHOL4.fmapal.ORL_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.optry,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.optry @ (cHOL4.option.SOME @ X0)) @ X1)) @ (cHOL4.option.SOME @ X0))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.optry @ cHOL4.option.NONE) @ X1)) @ X1))))) (Tfmapal.optry_list_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.optry_list_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X1)))))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X2]: (^[X6]: (((cHOL4.list.list_CASE @ X6) @ (cHOL4.combin.I @ cHOL4.option.NONE)) @ (^[X7]: (^[X1]: (((cHOL4.option.option_CASE @ X7) @ (cHOL4.combin.I @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X1)))) @ (^[X3]: (cHOL4.combin.I @ ((cHOL4.fmapal.optry @ (X2 @ X3)) @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X1))))))))))))))))) (Tfmapal.optry_list_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.optry_list @ X0) @ X1)) @ (cHOL4.fmapal.optry_list_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.assocv_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.assocv_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X3))) @ ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X1)) @ X2)) @ X4))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X4]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.option.NONE)) @ (^[X8]: (^[X2]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X3]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ X3)) @ (cHOL4.option.SOME @ X1)) @ (X5 @ ((cHOL4.pair.|comma| @ X2) @ X4)))))))))))))))))) (Tfmapal.assocv_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.assocv @ X0) @ X1)) @ (cHOL4.fmapal.assocv_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.vcossa,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.vcossa @ X0) @ X1)) @ ((cHOL4.fmapal.assocv @ X1) @ X0))))))) (Tfmapal.OPTION_UPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.OPTION_UPDATE @ X0) @ X1) @ X2)) @ ((cHOL4.fmapal.optry @ (X0 @ X2)) @ (X1 @ X2)))))))))) (Tfmapal.merge_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.merge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.EQUAL)) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X4)) @ X3))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3))))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X11]: (^[X12]: (((cHOL4.list.list_CASE @ X11) @ (cHOL4.combin.I @ X12)) @ (^[X13]: (^[X4]: (((cHOL4.list.list_CASE @ X12) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ X13) @ X4))) @ (^[X14]: (^[X3]: ((cHOL4.pair.pair_CASE @ X14) @ (^[X5]: (^[X1]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X6]: (^[X2]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)))))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X4)) @ X3))))))))))))))))))))))))))))) (Tfmapal.merge_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.merge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.incr_merge_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.incr_merge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (((cHOL4.fmapal.merge @ X4) @ X3) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1)))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X4]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X3]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ cHOL4.list.NIL))) @ (^[X9]: (^[X1]: (((cHOL4.option.option_CASE @ X9) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X1))) @ (^[X2]: (cHOL4.combin.I @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ (((cHOL4.fmapal.merge @ X4) @ X3) @ X2)) @ X1))))))))))))))))))))) (Tfmapal.incr_merge_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.incr_merge @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.incr_merge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.ORL_sublists_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.ORL_sublists_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X1)))))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X2]: (^[X6]: (((cHOL4.list.list_CASE @ X6) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X7]: (^[X1]: (((cHOL4.option.option_CASE @ X7) @ (cHOL4.combin.I @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X1)))) @ (^[X3]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.fmapal.ORL @ X2) @ X3)) @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ X1))))))))))))))))) (Tfmapal.ORL_sublists_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_sublists @ X0) @ X1)) @ (cHOL4.fmapal.ORL_sublists_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.incr_build,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.incr_build @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fmapal.incr_build @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.fmapal.incr_merge @ X0) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.fmapal.incr_build @ X0) @ X2))))))))))) (Tfmapal.merge_out_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.merge_out_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (((cHOL4.fmapal.merge @ X3) @ X2) @ X4)) @ X1))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X4)) @ X1))))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X3]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X2]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ X2)) @ (^[X9]: (^[X1]: (((cHOL4.option.option_CASE @ X9) @ (cHOL4.combin.I @ (X5 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X1))))) @ (^[X4]: (cHOL4.combin.I @ (X5 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ (((cHOL4.fmapal.merge @ X3) @ X2) @ X4)) @ X1)))))))))))))))))))) (Tfmapal.merge_out_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge_out @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.merge_out_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.incr_flat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.incr_flat @ X0) @ X1)) @ (((cHOL4.fmapal.merge_out @ X0) @ cHOL4.list.NIL) @ X1))))))) (Tfmapal.incr_sort,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.incr_sort @ X0) @ X1)) @ (((cHOL4.fmapal.merge_out @ X0) @ cHOL4.list.NIL) @ ((cHOL4.fmapal.incr_build @ X0) @ X1)))))))) (Tfmapal.OPTION_FLAT_primitive,((cHOL4.min.= @ cHOL4.fmapal.OPTION_FLAT) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1))))))))))) @ (^[X3]: (^[X4]: (((cHOL4.list.list_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X5]: (^[X1]: (((cHOL4.option.option_CASE @ X5) @ (cHOL4.combin.I @ (X3 @ X1))) @ (^[X2]: (cHOL4.combin.I @ ((cHOL4.list.APPEND @ X2) @ (X3 @ X1))))))))))))) (Tfmapal.unlookup,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fmapal.unlookup @ X0)) @ ((cHOL4.finite_map.FUN_FMAP @ ((cHOL4.combin.o @ cHOL4.option.THE) @ X0)) @ ((cHOL4.combin.o @ cHOL4.option.IS_SOME) @ X0)))))) (Tfmapal.bt_to_fmap_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_fmap_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ ((cHOL4.pair.|comma| @ X5) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)))))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ ((cHOL4.pair.|comma| @ X5) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: (((cHOL4.enumeral.bt_CASE @ X8) @ (cHOL4.combin.I @ cHOL4.finite_map.FEMPTY)) @ (^[X4]: (^[X9]: (^[X1]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X3]: (^[X2]: (cHOL4.combin.I @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.DRESTRICT @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ X4))) @ (cHOL4.pred_set.GSPEC @ (^[X10]: ((cHOL4.pair.|comma| @ X10) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X10) @ X3)) @ cHOL4.toto.LESS)))))) @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X3) @ X2)))) @ ((cHOL4.finite_map.DRESTRICT @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ X1))) @ (cHOL4.pred_set.GSPEC @ (^[X11]: ((cHOL4.pair.|comma| @ X11) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X5) @ X3) @ X11)) @ cHOL4.toto.LESS)))))))))))))))))))))) (Tfmapal.bt_to_fmap_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.FMAPAL @ X0) @ X1)) @ (cHOL4.fmapal.bt_to_fmap_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.bt_to_fmap_lb,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_fmap_lb @ X0) @ X1) @ X2)) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X0) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))))) (Tfmapal.bt_to_fmap_ub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_fmap_ub @ X0) @ X1) @ X2)) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.LESS))))))))))))) (Tfmapal.bt_to_fmap_lb_ub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_fmap_lb_ub @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X0) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X4)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X3)) @ cHOL4.toto.LESS)))))))))))))))) (Tfmapal.bt_map,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.bt_map @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.enumeral.nt)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.fmapal.bt_map @ X0) @ (((cHOL4.enumeral.node @ X1) @ X2) @ X3))) @ (((cHOL4.enumeral.node @ ((cHOL4.fmapal.bt_map @ X0) @ X1)) @ (X0 @ X2)) @ ((cHOL4.fmapal.bt_map @ X0) @ X3))))))))))))) (Tfmapal.bt_to_orl_lb_ub_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_lb_ub_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)) @ X3)))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X5) @ X3)) @ cHOL4.toto.LESS)))) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)) @ X3)))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X5) @ X3)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X2) @ X5)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)) @ X3)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X5) @ X3)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)) @ X3)))))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X6]: (^[X11]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X12]: (^[X3]: (((cHOL4.enumeral.bt_CASE @ X12) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X2]: (^[X13]: (^[X4]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X5]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X5) @ X3)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X2) @ X5))))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ cHOL4.list.NIL))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))))))))))))))))))) (Tfmapal.bt_to_orl_lb_ub_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.fmapal.bt_to_orl_lb_ub_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tfmapal.bt_to_orl_lb_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_lb_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X3))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X1)) @ X3)))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X1)) @ X3)))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X5]: (^[X10]: (((cHOL4.enumeral.bt_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X2]: (^[X11]: (^[X3]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X4]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X6) @ X5) @ X2) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X1)) @ cHOL4.list.NIL))) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X3))))))))))))))))))))))) (Tfmapal.bt_to_orl_lb_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_lb @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.bt_to_orl_lb_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.bt_to_orl_ub_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_ub_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X5) @ X2)) @ X1)) @ X4))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X5))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X5) @ X2)) @ X1)) @ X4))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X10]: (^[X4]: (((cHOL4.enumeral.bt_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X3]: (^[X11]: (^[X1]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X5]: (^[X2]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X5)))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X2)) @ cHOL4.list.NIL))) @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X6) @ X5) @ X1) @ X4))) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X4))))))))))))))))))))))) (Tfmapal.bt_to_orl_ub_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_ub @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.bt_to_orl_ub_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.bt_to_orl_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (((cHOL4.enumeral.bt_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X5]: (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X8]: (^[X9]: (cHOL4.combin.I @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (((cHOL4.fmapal.bt_to_orl_ub @ X3) @ X5) @ X8)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ cHOL4.list.NIL))) @ (((cHOL4.fmapal.bt_to_orl_lb @ X3) @ X8) @ X7)))))))))))))))))) (Tfmapal.bt_to_orl_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.bt_to_orl @ X0) @ X1)) @ (cHOL4.fmapal.bt_to_orl_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.fmap,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ X0)) @ ((cHOL4.finite_map.FUPDATE_LIST @ cHOL4.finite_map.FEMPTY) @ (cHOL4.list.REVERSE @ X0)))))) (Tfmapal.bt_to_orl_lb_ub_ac_tupled_AUX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fmapal.bt_to_orl_lb_ub_ac_tupled_aux @ X0)) @ ((cHOL4.relation.WFREC @ X0) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (((cHOL4.enumeral.bt_CASE @ X7) @ (cHOL4.combin.I @ X10)) @ (^[X11]: (^[X12]: (^[X13]: ((cHOL4.pair.pair_CASE @ X12) @ (^[X14]: (^[X15]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X3) @ X5) @ X14)) @ cHOL4.toto.LESS)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X3) @ X14) @ X9)) @ cHOL4.toto.LESS)) @ (X1 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X11) @ ((cHOL4.pair.|comma| @ X14) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X14) @ X15)) @ (X1 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X14) @ ((cHOL4.pair.|comma| @ X13) @ ((cHOL4.pair.|comma| @ X9) @ X10)))))))))))) @ (X1 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X11) @ ((cHOL4.pair.|comma| @ X9) @ X10))))))) @ (X1 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X13) @ ((cHOL4.pair.|comma| @ X9) @ X10))))))))))))))))))))))))))))))))) (Tfmapal.bt_to_orl_lb_ub_ac_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_lb_ub_ac_tupled) @ (cHOL4.fmapal.bt_to_orl_lb_ub_ac_tupled_aux @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X5)) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ cHOL4.toto.LESS)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X6) @ X4)) @ cHOL4.toto.LESS)))) @ ((X0 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X5)) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X6) @ X4)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ ((cHOL4.fmapal.bt_to_orl_lb_ub_ac_tupled_aux @ X0) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X5)) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X6) @ X4)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X5)) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))))))))))))))))))))))) (Tfmapal.bt_to_orl_lb_ub_ac_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X0) @ X1) @ X2) @ X3) @ X4)) @ (cHOL4.fmapal.bt_to_orl_lb_ub_ac_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4))))))))))))))))) (Tfmapal.bt_to_orl_lb_ac_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_lb_ac_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)) @ X3)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)) @ X3)))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X6]: (^[X11]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X12]: (^[X3]: (((cHOL4.enumeral.bt_CASE @ X12) @ (cHOL4.combin.I @ X3)) @ (^[X2]: (^[X13]: (^[X4]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X5]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X7) @ X6) @ X2) @ X5) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3))))))))))))))))))))))))))) (Tfmapal.bt_to_orl_lb_ac_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.fmapal.bt_to_orl_lb_ac_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tfmapal.bt_to_orl_ub_ac_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_ub_ac_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS))) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X3)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X1)) @ ((cHOL4.pair.|comma| @ X5) @ X3)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X7) @ X6) @ X1) @ X5) @ X3)))))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X1)) @ ((cHOL4.pair.|comma| @ X5) @ X3)))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X11]: (^[X12]: ((cHOL4.pair.pair_CASE @ X12) @ (^[X5]: (^[X3]: (((cHOL4.enumeral.bt_CASE @ X11) @ (cHOL4.combin.I @ X3)) @ (^[X4]: (^[X13]: (^[X1]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X6]: (^[X2]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X5)) @ cHOL4.toto.LESS)) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X7) @ X6) @ X1) @ X5) @ X3))))))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X3))))))))))))))))))))))))))) (Tfmapal.bt_to_orl_ub_ac_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.fmapal.bt_to_orl_ub_ac_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tfmapal.bt_to_orl_ac_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_to_orl_ac_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: (((cHOL4.enumeral.bt_CASE @ X5) @ (cHOL4.combin.I @ X6)) @ (^[X7]: (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X10]: (^[X11]: (cHOL4.combin.I @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X3) @ X7) @ X10) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X10) @ X11)) @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X3) @ X10) @ X9) @ X6)))))))))))))))))))))) (Tfmapal.bt_to_orl_ac_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_ac @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.bt_to_orl_ac_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.ORWL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORWL @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.fmapal.fmap @ X2))) @ ((cHOL4.fmapal.ORL @ X0) @ X2)))))))))) (Tfmapal.OFU,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.OFU @ X0) @ X1) @ X2)) @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (((cHOL4.enumeral.LESS_ALL @ X0) @ X3) @ (cHOL4.finite_map.FDOM @ X2))))))) @ X2))))))))) (Tfmapal.UFO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.UFO @ X0) @ X1) @ X2)) @ ((cHOL4.finite_map.FUNION @ X1) @ ((cHOL4.finite_map.DRESTRICT @ X2) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.finite_map.FDOM @ X1))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X4) @ X3)) @ cHOL4.toto.LESS))))))))))))))))) (Tfmapal.bl_to_fmap_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bl_to_fmap_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.enumeral.zerbl @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ (((cHOL4.enumeral.onebl @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X3) @ X1)))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X2]: (^[X8]: ((((cHOL4.enumeral.bl_CASE @ X8) @ (cHOL4.combin.I @ cHOL4.finite_map.FEMPTY)) @ (^[X1]: (cHOL4.combin.I @ (X6 @ ((cHOL4.pair.|comma| @ X2) @ X1))))) @ (^[X9]: (^[X3]: (^[X10]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X5]: (^[X4]: (cHOL4.combin.I @ (((cHOL4.fmapal.OFU @ X2) @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X5) @ X4))) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X2) @ X3)) @ (cHOL4.pred_set.GSPEC @ (^[X11]: ((cHOL4.pair.|comma| @ X11) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X2) @ X5) @ X11)) @ cHOL4.toto.LESS))))))) @ (X6 @ ((cHOL4.pair.|comma| @ X2) @ X10))))))))))))))))))) (Tfmapal.bl_to_fmap_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.bl_to_fmap @ X0) @ X1)) @ (cHOL4.fmapal.bl_to_fmap_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.inter_merge_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.inter_merge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.EQUAL)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X2))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2)))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ X2))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2)))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X4) @ X2)))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2))))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X10]: (^[X11]: (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X12]: (^[X3]: (((cHOL4.list.list_CASE @ X11) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X4]: (^[X2]: ((cHOL4.pair.pair_CASE @ X12) @ (^[X5]: (^[X1]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X4) @ X2))))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X2))))) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ X2))))))))))))))))))))))))) (Tfmapal.inter_merge_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.inter_merge @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.inter_merge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.diff_merge_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.diff_merge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.EQUAL)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X2))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2)))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ X2))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2)))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X4) @ X2)))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2))))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X10]: (^[X11]: (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X12]: (^[X3]: ((cHOL4.pair.pair_CASE @ X12) @ (^[X5]: (^[X1]: (((cHOL4.list.list_CASE @ X11) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3))) @ (^[X4]: (^[X2]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X6) @ X5) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X4) @ X2)))))) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ X2)))) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ X2))))))))))))))))))))))))) (Tfmapal.diff_merge_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.diff_merge @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.diff_merge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.AP_SND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fmapal.AP_SND @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X1) @ (X0 @ X2)))))))))) (Tfmapal.ORL_bt_lb_ub_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.ORL_bt_lb_ub_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X4)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X2)) @ X1))))))))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X2) @ X1)))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X2)) @ X1))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X6]: (^[X11]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X12]: (^[X1]: (((cHOL4.enumeral.bt_CASE @ X12) @ (cHOL4.combin.I @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X7) @ X6) @ X1)) @ cHOL4.toto.LESS))) @ (^[X5]: (^[X13]: (^[X2]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X4]: (^[X3]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X4))))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X2) @ X1))))))))))))))))))))))))))) (Tfmapal.ORL_bt_lb_ub_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.fmapal.ORL_bt_lb_ub_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tfmapal.ORL_bt_lb_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.ORL_bt_lb_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X4))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X3) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X4)))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X3]: (^[X10]: (((cHOL4.enumeral.bt_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X2]: (^[X11]: (^[X4]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X5]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X6) @ X3) @ X2) @ X5)) @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X4))))))))))))))))))))))) (Tfmapal.ORL_bt_lb_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORL_bt_lb @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.ORL_bt_lb_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.ORL_bt_ub_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.ORL_bt_ub_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X4))) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X2)) @ X1))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X6]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X10]: (^[X1]: (((cHOL4.enumeral.bt_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X5]: (^[X11]: (^[X2]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X4]: (^[X3]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (X7 @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ X4)))) @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X6) @ X4) @ X2) @ X1))))))))))))))))))))) (Tfmapal.ORL_bt_ub_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORL_bt_ub @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.ORL_bt_ub_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.ORL_bt_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.ORL_bt_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (((cHOL4.enumeral.bt_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X5]: (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X8]: (^[X9]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (((cHOL4.fmapal.ORL_bt_ub @ X3) @ X5) @ X8)) @ (((cHOL4.fmapal.ORL_bt_lb @ X3) @ X8) @ X7)))))))))))))))))) (Tfmapal.ORL_bt_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_bt @ X0) @ X1)) @ (cHOL4.fmapal.ORL_bt_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tfmapal.list_rplacv_cn_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.list_rplacv_cn_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X6) @ X5))) @ ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X6) @ X4)) @ ((cHOL4.pair.|comma| @ X3) @ (^[X7]: (X2 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X7)))))) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X6) @ X4)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X3)) @ X2)))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X10]: (^[X11]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X6]: (^[X4]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X12]: (^[X2]: (((cHOL4.list.list_CASE @ X12) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X13]: (^[X3]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X5]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X6) @ X5)) @ (X2 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X4)) @ X3))) @ (X8 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X6) @ X4)) @ ((cHOL4.pair.|comma| @ X3) @ (^[X7]: (X2 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X1)) @ X7)))))))))))))))))))))))))))) (Tfmapal.list_rplacv_cn_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.list_rplacv_cn @ X0) @ X1) @ X2)) @ (cHOL4.fmapal.list_rplacv_cn_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tfmapal.bt_rplacv_cn_tupled_primitive,((cHOL4.min.= @ cHOL4.fmapal.bt_rplacv_cn_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ cHOL4.toto.GREATER)) @ ((X0 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ ((cHOL4.pair.|comma| @ X4) @ (^[X9]: (X3 @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X9))))))) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X4)) @ X3)))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ cHOL4.toto.LESS)) @ ((X0 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ ((cHOL4.pair.|comma| @ X2) @ (^[X9]: (X3 @ (((cHOL4.enumeral.node @ X9) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X4))))))) @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ ((cHOL4.pair.|comma| @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X4)) @ X3)))))))))))))))))))))))))) @ (^[X10]: (^[X11]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X8]: (^[X12]: ((cHOL4.pair.pair_CASE @ X12) @ (^[X13]: (^[X14]: ((cHOL4.pair.pair_CASE @ X13) @ (^[X7]: (^[X5]: ((cHOL4.pair.pair_CASE @ X14) @ (^[X15]: (^[X3]: (((cHOL4.enumeral.bt_CASE @ X15) @ (cHOL4.combin.I @ cHOL4.enumeral.nt)) @ (^[X2]: (^[X16]: (^[X4]: ((cHOL4.pair.pair_CASE @ X16) @ (^[X6]: (^[X1]: (cHOL4.combin.I @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X8) @ X7) @ X6)) @ (X10 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ ((cHOL4.pair.|comma| @ X2) @ (^[X9]: (X3 @ (((cHOL4.enumeral.node @ X9) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X4)))))))) @ (X3 @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ X4))) @ (X10 @ ((cHOL4.pair.|comma| @ X8) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X7) @ X5)) @ ((cHOL4.pair.|comma| @ X4) @ (^[X9]: (X3 @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X6) @ X1)) @ X9))))))))))))))))))))))))))))))))) (Tfmapal.bt_rplacv_cn_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_rplacv_cn @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.fmapal.bt_rplacv_cn_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tfmapal.ORL_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X1) @ X4)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (Tfmapal.ORL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X4)) @ cHOL4.toto.LESS)))))))))))))))))) (Tfmapal.optry_list_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X4) @ X5))))))))) (Tfmapal.optry_list,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.optry_list @ X0) @ cHOL4.list.NIL)) @ cHOL4.option.NONE)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.optry_list @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))) @ ((cHOL4.fmapal.optry_list @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.optry_list @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1))) @ ((cHOL4.fmapal.optry @ (X0 @ X2)) @ ((cHOL4.fmapal.optry_list @ X0) @ X1)))))))))))) (Tfmapal.assocv_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.list.NIL) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((X0 @ X4) @ X1))) @ ((X0 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ X1)))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (Tfmapal.assocv,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.assocv @ cHOL4.list.NIL) @ X0)) @ cHOL4.option.NONE)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.assocv @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X2)) @ (cHOL4.option.SOME @ X1)) @ ((cHOL4.fmapal.assocv @ X3) @ X0))))))))))))) (Tfmapal.merge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ cHOL4.list.NIL) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((X0 @ X1) @ ((cHOL4.list.CONS @ X3) @ X4)) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X8)) @ cHOL4.toto.EQUAL)) @ (((X0 @ X1) @ X7) @ X10))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X8)) @ cHOL4.toto.GREATER)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7)) @ X10))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X8)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X7) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ X10)))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ X10)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (((X0 @ X11) @ X12) @ X13))))))))))) (Tfmapal.merge,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge @ X1) @ cHOL4.list.NIL) @ X0)) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge @ X1) @ ((cHOL4.list.CONS @ X3) @ X2)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X3) @ X2))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X9) @ X7)) @ X5)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X6)) @ X4))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X1) @ X9) @ X8)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X9) @ X7)) @ (((cHOL4.fmapal.merge @ X1) @ X5) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X6)) @ X4)))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X9) @ X7)) @ (((cHOL4.fmapal.merge @ X1) @ X5) @ X4))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X6)) @ (((cHOL4.fmapal.merge @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X9) @ X7)) @ X5)) @ X4))))))))))))))))))))) (Tfmapal.incr_merge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X3))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ (((cHOL4.fmapal.merge @ X1) @ X2) @ X4)) @ X3)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X4)) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (((X0 @ X5) @ X6) @ X7))))))))))) (Tfmapal.incr_merge,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.incr_merge @ X1) @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X0)) @ cHOL4.list.NIL))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.incr_merge @ X1) @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2))) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X0)) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.incr_merge @ X1) @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2))) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ (((cHOL4.fmapal.incr_merge @ X1) @ (((cHOL4.fmapal.merge @ X1) @ X0) @ X3)) @ X2)))))))))))))) (Tfmapal.ORL_sublists_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X4) @ X5))))))))) (Tfmapal.ORL_sublists,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_sublists @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_sublists @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1))) @ ((cHOL4.fmapal.ORL_sublists @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_sublists @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.fmapal.ORL @ X0) @ X2)) @ ((cHOL4.fmapal.ORL_sublists @ X0) @ X1)))))))))))) (Tfmapal.merge_out_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X3)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ (((cHOL4.fmapal.merge @ X1) @ X2) @ X4)) @ X3)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X4)) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (((X0 @ X5) @ X6) @ X7))))))))))) (Tfmapal.merge_out,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge_out @ X1) @ X0) @ cHOL4.list.NIL)) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge_out @ X1) @ X0) @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X2))) @ (((cHOL4.fmapal.merge_out @ X1) @ X0) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.merge_out @ X1) @ X0) @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X3)) @ X2))) @ (((cHOL4.fmapal.merge_out @ X1) @ (((cHOL4.fmapal.merge @ X1) @ X0) @ X3)) @ X2))))))))))))) (Tfmapal.OPTION_FLAT_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X2)) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tfmapal.OPTION_FLAT,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.fmapal.OPTION_FLAT @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fmapal.OPTION_FLAT @ ((cHOL4.list.CONS @ cHOL4.option.NONE) @ X0))) @ (cHOL4.fmapal.OPTION_FLAT @ X0))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.fmapal.OPTION_FLAT @ ((cHOL4.list.CONS @ (cHOL4.option.SOME @ X1)) @ X0))) @ ((cHOL4.list.APPEND @ X1) @ (cHOL4.fmapal.OPTION_FLAT @ X0)))))))))) (Tfmapal.bt_to_fmap_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.enumeral.nt)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ X5))) @ ((X0 @ X1) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tfmapal.bt_to_fmap,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.FMAPAL @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.finite_map.FEMPTY)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.FMAPAL @ X0) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X3))) @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X0) @ X4)) @ (cHOL4.pred_set.GSPEC @ (^[X5]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X5) @ X1)) @ cHOL4.toto.LESS)))))) @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X0) @ X3)) @ (cHOL4.pred_set.GSPEC @ (^[X6]: ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X6)) @ cHOL4.toto.LESS))))))))))))))))))) (Tfmapal.FAPPLY_nt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.fmapal.FMAPAL @ X0) @ cHOL4.enumeral.nt)) @ X1)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X1))))))) (Tfmapal.FAPPLY_node,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.fmapal.FMAPAL @ X0) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5))) @ X1)) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.fmapal.FMAPAL @ X0) @ X2)) @ X1)) @ X4) @ ((cHOL4.finite_map.FAPPLY @ ((cHOL4.fmapal.FMAPAL @ X0) @ X5)) @ X1)))))))))))))))) (Tfmapal.bt_FST_FDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ X1))) @ ((cHOL4.enumeral.ENUMERAL @ X0) @ ((cHOL4.fmapal.bt_map @ cHOL4.pair.FST) @ X1)))))))) (Tfmapal.bt_to_orl_lb_ub_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ X2) @ cHOL4.enumeral.nt) @ X3)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS))) @ ((((X0 @ X1) @ X2) @ X7) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X3)) @ cHOL4.toto.LESS)))) @ ((((X0 @ X1) @ X2) @ X4) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X3)) @ cHOL4.toto.LESS))) @ ((((X0 @ X1) @ X2) @ X4) @ X5))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X3)) @ cHOL4.toto.LESS))) @ ((((X0 @ X1) @ X5) @ X7) @ X3)))))) @ ((((X0 @ X1) @ X2) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7)) @ X3)))))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((((X0 @ X8) @ X9) @ X10) @ X11))))))))))))) (Tfmapal.bt_to_orl_lb_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X2) @ X1) @ cHOL4.enumeral.nt) @ X0)) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X2) @ X1) @ (((cHOL4.enumeral.node @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X5)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X2) @ X1) @ X4)) @ cHOL4.toto.LESS)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X2) @ X4) @ X0)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X2) @ X1) @ X6) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ cHOL4.list.NIL))) @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X2) @ X4) @ X5) @ X0))) @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X2) @ X1) @ X6) @ X0))) @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X2) @ X1) @ X5) @ X0))))))))))))))))))) (Tfmapal.bt_to_orl_lb_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.enumeral.nt)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.LESS))) @ (((X0 @ X1) @ X2) @ X6))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X4)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X4) @ X6)))) @ (((X0 @ X1) @ X2) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6))))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.bt_to_orl_lb,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_lb @ X1) @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_lb @ X1) @ X0) @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X4))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X0) @ X3)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X1) @ X0) @ X5) @ X3)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ cHOL4.list.NIL))) @ (((cHOL4.fmapal.bt_to_orl_lb @ X1) @ X3) @ X4))) @ (((cHOL4.fmapal.bt_to_orl_lb @ X1) @ X0) @ X4))))))))))))))))) (Tfmapal.bt_to_orl_ub_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ cHOL4.enumeral.nt) @ X2)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X4) @ X2)) @ cHOL4.toto.LESS))) @ (((X0 @ X1) @ X3) @ X2))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X4) @ X2)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X3) @ X4)))) @ (((X0 @ X1) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6)) @ X2)))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.bt_to_orl_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_ub @ X1) @ cHOL4.enumeral.nt) @ X0)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_ub @ X1) @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X4)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X3) @ X0)) @ cHOL4.toto.LESS)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (((cHOL4.fmapal.bt_to_orl_ub @ X1) @ X5) @ X3)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ cHOL4.list.NIL))) @ ((((cHOL4.fmapal.bt_to_orl_lb_ub @ X1) @ X3) @ X4) @ X0))) @ (((cHOL4.fmapal.bt_to_orl_ub @ X1) @ X5) @ X0))))))))))))))))) (Tfmapal.bt_to_orl_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.enumeral.nt)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X1) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5)))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tfmapal.bt_to_orl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.fmapal.bt_to_orl @ X4) @ cHOL4.enumeral.nt)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ ((cHOL4.fmapal.bt_to_orl @ X4) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (((cHOL4.fmapal.bt_to_orl_ub @ X4) @ X3) @ X1)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ cHOL4.list.NIL))) @ (((cHOL4.fmapal.bt_to_orl_lb @ X4) @ X1) @ X2))))))))))))))) (Tfmapal.bt_to_orl_lb_ub_ac_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((((X0 @ X1) @ X2) @ cHOL4.enumeral.nt) @ X3) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X6)) @ cHOL4.toto.LESS))) @ (((((X0 @ X1) @ X2) @ X8) @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X6)) @ cHOL4.toto.LESS)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X6) @ X3)) @ cHOL4.toto.LESS)))) @ (((((X0 @ X1) @ X2) @ X5) @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X6)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X6) @ X3)) @ cHOL4.toto.LESS))) @ (((((X0 @ X1) @ X2) @ X5) @ X6) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X1) @ X6) @ X8) @ X3) @ X4))))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X6)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X6) @ X3)) @ cHOL4.toto.LESS))) @ (((((X0 @ X1) @ X6) @ X8) @ X3) @ X4)))))) @ (((((X0 @ X1) @ X2) @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X8)) @ X3) @ X4)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (((((X0 @ X9) @ X10) @ X11) @ X12) @ X13))))))))))))))) (Tfmapal.bt_to_orl_lb_ub_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X3) @ X2) @ cHOL4.enumeral.nt) @ X0) @ X1)) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X3) @ X2) @ (((cHOL4.enumeral.node @ X7) @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X6)) @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X3) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X3) @ X5) @ X0)) @ cHOL4.toto.LESS)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X3) @ X2) @ X7) @ X5) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X3) @ X5) @ X6) @ X0) @ X1)))) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X3) @ X2) @ X7) @ X0) @ X1))) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X3) @ X2) @ X6) @ X0) @ X1))))))))))))))))))))) (Tfmapal.bt_to_orl_lb_ac_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ X2) @ cHOL4.enumeral.nt) @ X3)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS))) @ ((((X0 @ X1) @ X2) @ X7) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ ((((X0 @ X1) @ X5) @ X7) @ X3)))) @ ((((X0 @ X1) @ X2) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7)) @ X3)))))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((((X0 @ X8) @ X9) @ X10) @ X11))))))))))))) (Tfmapal.bt_to_orl_lb_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X2) @ X1) @ cHOL4.enumeral.nt) @ X0)) @ X0)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X2) @ X1) @ (((cHOL4.enumeral.node @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X5)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X2) @ X1) @ X4)) @ cHOL4.toto.LESS)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X2) @ X1) @ X6) @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X2) @ X4) @ X5) @ X0)))) @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X2) @ X1) @ X5) @ X0))))))))))))))))))) (Tfmapal.bt_to_orl_ub_ac_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ cHOL4.enumeral.nt) @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X2)) @ cHOL4.toto.LESS))) @ ((((X0 @ X1) @ X4) @ X2) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X5) @ X2)) @ cHOL4.toto.LESS)) @ ((((X0 @ X1) @ X4) @ X5) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X1) @ X5) @ X7) @ X2) @ X3)))))) @ ((((X0 @ X1) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7)) @ X2) @ X3)))))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((((X0 @ X8) @ X9) @ X10) @ X11))))))))))))) (Tfmapal.bt_to_orl_ub_ac,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X2) @ cHOL4.enumeral.nt) @ X0) @ X1)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X2) @ (((cHOL4.enumeral.node @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X5)) @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X2) @ X4) @ X0)) @ cHOL4.toto.LESS)) @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X2) @ X6) @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ (((((cHOL4.fmapal.bt_to_orl_lb_ub_ac @ X2) @ X4) @ X5) @ X0) @ X1)))) @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X2) @ X6) @ X0) @ X1))))))))))))))))))) (Tfmapal.bt_to_orl_ac_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ cHOL4.enumeral.nt) @ X2)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6)) @ X2))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.bt_to_orl_ac,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_ac @ X5) @ cHOL4.enumeral.nt) @ X3)) @ X3)) @ ((cHOL4.min.= @ (((cHOL4.fmapal.bt_to_orl_ac @ X5) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2)) @ X3)) @ ((((cHOL4.fmapal.bt_to_orl_ub_ac @ X5) @ X4) @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ ((((cHOL4.fmapal.bt_to_orl_lb_ac @ X5) @ X1) @ X2) @ X3)))))))))))))))))) (Tfmapal.ORWL_bt_to_orl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.fmapal.ORWL @ X0) @ ((cHOL4.fmapal.FMAPAL @ X0) @ X1)) @ ((cHOL4.fmapal.bt_to_orl @ X0) @ X1))))))) (Tfmapal.bl_to_fmap_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.enumeral.nbl)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ (cHOL4.enumeral.zerbl @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ (((cHOL4.enumeral.onebl @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5) @ X2)))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tfmapal.bl_to_fmap,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmapal.bl_to_fmap @ X0) @ cHOL4.enumeral.nbl)) @ cHOL4.finite_map.FEMPTY)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.bl_to_fmap @ X0) @ (cHOL4.enumeral.zerbl @ X1))) @ ((cHOL4.fmapal.bl_to_fmap @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.bl_to_fmap @ X0) @ (((cHOL4.enumeral.onebl @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X4) @ X1))) @ (((cHOL4.fmapal.OFU @ X0) @ ((cHOL4.finite_map.FUNION @ ((cHOL4.finite_map.FUPDATE @ cHOL4.finite_map.FEMPTY) @ ((cHOL4.pair.|comma| @ X3) @ X2))) @ ((cHOL4.finite_map.DRESTRICT @ ((cHOL4.fmapal.FMAPAL @ X0) @ X4)) @ (cHOL4.pred_set.GSPEC @ (^[X5]: ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X5)) @ cHOL4.toto.LESS))))))) @ ((cHOL4.fmapal.bl_to_fmap @ X0) @ X1)))))))))))))))) (Tfmapal.bt_to_orl_ID_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.fmapal.bt_to_orl @ X0) @ (cHOL4.enumeral.list_to_bt @ X1))) @ X1))))))) (Tfmapal.fmap_FDOM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ (cHOL4.fmapal.fmap @ X0))) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)))))) (Tfmapal.ORL_FUNION_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.fmapal.ORL @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.fmapal.ORL @ X0) @ (((cHOL4.fmapal.merge @ X0) @ X1) @ X2))) @ ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ (((cHOL4.fmapal.merge @ X0) @ X1) @ X2))) @ ((cHOL4.finite_map.FUNION @ (cHOL4.fmapal.fmap @ X1)) @ (cHOL4.fmapal.fmap @ X2))))))))))))) (Tfmapal.FMAPAL_FDOM_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ cHOL4.enumeral.nt)))) @ cHOL4.bool.F)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X5))))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ X4)))) @ cHOL4.bool.T) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ X5))))))))))))))))))) (Tfmapal.inter_merge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((X0 @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ cHOL4.list.NIL)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X5) @ X6))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.EQUAL)) @ (((X0 @ X1) @ X4) @ X6))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.GREATER)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ X6))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ ((cHOL4.list.CONS @ X5) @ X6))))))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.inter_merge,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.fmapal.inter_merge @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.fmapal.inter_merge @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.fmapal.inter_merge @ X0) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X4) @ X5))) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.fmapal.inter_merge @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X3) @ X4)) @ (((cHOL4.fmapal.inter_merge @ X0) @ X1) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (((cHOL4.fmapal.inter_merge @ X0) @ X1) @ X5))) @ (((cHOL4.fmapal.inter_merge @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ X5))))))))))))))))))) (Tfmapal.ORL_DRESTRICT_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.fmapal.ORL @ X0) @ (((cHOL4.fmapal.inter_merge @ X0) @ X1) @ X2))) @ ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ (((cHOL4.fmapal.inter_merge @ X0) @ X1) @ X2))) @ ((cHOL4.finite_map.DRESTRICT @ (cHOL4.fmapal.fmap @ X1)) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))))) (Tfmapal.diff_merge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((X0 @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ cHOL4.list.NIL)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X5) @ X6))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.EQUAL)) @ (((X0 @ X1) @ X4) @ X6))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.GREATER)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ X6))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X5)) @ cHOL4.toto.LESS)) @ (((X0 @ X1) @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ ((cHOL4.list.CONS @ X5) @ X6))))))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.diff_merge,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.fmapal.diff_merge @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.fmapal.diff_merge @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.fmapal.diff_merge @ X0) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X4) @ X5))) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.fmapal.diff_merge @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X3) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (((cHOL4.fmapal.diff_merge @ X0) @ X1) @ ((cHOL4.list.CONS @ X4) @ X5)))) @ (((cHOL4.fmapal.diff_merge @ X0) @ X1) @ X5)) @ (((cHOL4.fmapal.diff_merge @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ X5))))))))))))))))))) (Tfmapal.ORL_DRESTRICT_COMPL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.enumeral.OL @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.fmapal.ORL @ X0) @ (((cHOL4.fmapal.diff_merge @ X0) @ X1) @ X2))) @ ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ (((cHOL4.fmapal.diff_merge @ X0) @ X1) @ X2))) @ ((cHOL4.finite_map.DRESTRICT @ (cHOL4.fmapal.fmap @ X1)) @ (cHOL4.pred_set.COMPL @ (cHOL4.list.LIST_TO_SET @ X2)))))))))))))) (Tfmapal.FMAPAL_fmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ X1)) @ ((cHOL4.fmapal.FMAPAL @ X0) @ (cHOL4.enumeral.list_to_bt @ ((cHOL4.fmapal.incr_sort @ X0) @ X1))))))))) (Tfmapal.ORL_FMAPAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.fmapal.ORL @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ X1)) @ ((cHOL4.fmapal.FMAPAL @ X0) @ (cHOL4.enumeral.list_to_bt @ X1))))))))) (Tfmapal.ORWL_FUNION_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.fmapal.ORWL @ X0) @ X1) @ X2)) @ (((cHOL4.fmapal.ORWL @ X0) @ X3) @ X4))) @ (((cHOL4.fmapal.ORWL @ X0) @ ((cHOL4.finite_map.FUNION @ X1) @ X3)) @ (((cHOL4.fmapal.merge @ X0) @ X2) @ X4)))))))))))))) (Tfmapal.ORWL_DRESTRICT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.fmapal.ORWL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.OWL @ X0) @ X3) @ X4))) @ (((cHOL4.fmapal.ORWL @ X0) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ X3)) @ (((cHOL4.fmapal.inter_merge @ X0) @ X2) @ X4)))))))))))))) (Tfmapal.ORWL_DRESTRICT_COMPL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.fmapal.ORWL @ X0) @ X1) @ X2)) @ (((cHOL4.enumeral.OWL @ X0) @ X3) @ X4))) @ (((cHOL4.fmapal.ORWL @ X0) @ ((cHOL4.finite_map.DRESTRICT @ X1) @ (cHOL4.pred_set.COMPL @ X3))) @ (((cHOL4.fmapal.diff_merge @ X0) @ X2) @ X4)))))))))))))) (Tfmapal.o_f_bt_map,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.finite_map.o_f @ X1) @ ((cHOL4.fmapal.FMAPAL @ X0) @ X2))) @ ((cHOL4.fmapal.FMAPAL @ X0) @ ((cHOL4.fmapal.bt_map @ (cHOL4.fmapal.AP_SND @ X1)) @ X2)))))))))) (Tfmapal.FAPPLY_fmap_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.fmapal.fmap @ cHOL4.list.NIL)) @ X0)) @ ((cHOL4.finite_map.FAPPLY @ cHOL4.finite_map.FEMPTY) @ X0))))) (Tfmapal.FAPPLY_fmap_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.fmapal.fmap @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X3))) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X1)) @ X2) @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.fmapal.fmap @ X3)) @ X0)))))))))))) (Tfmapal.o_f_fmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.finite_map.o_f @ X0) @ (cHOL4.fmapal.fmap @ X1))) @ (cHOL4.fmapal.fmap @ ((cHOL4.list.MAP @ (cHOL4.fmapal.AP_SND @ X0)) @ X1)))))))) (Tfmapal.ORL_bt_lb_ub_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ X2) @ cHOL4.enumeral.nt) @ X3)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((X0 @ X1) @ X2) @ X4) @ X5)) @ ((((X0 @ X1) @ X5) @ X7) @ X3))) @ ((((X0 @ X1) @ X2) @ (((cHOL4.enumeral.node @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7)) @ X3)))))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((((X0 @ X8) @ X9) @ X10) @ X11))))))))))))) (Tfmapal.ORL_bt_lb_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X2) @ X1) @ cHOL4.enumeral.nt) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X2) @ X1) @ X0)) @ cHOL4.toto.LESS))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X2) @ X1) @ (((cHOL4.enumeral.node @ X6) @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X5)) @ X0)) @ ((cHOL4.bool./\ @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X2) @ X1) @ X6) @ X4)) @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X2) @ X4) @ X5) @ X0))))))))))))))))))) (Tfmapal.ORL_bt_lb_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.enumeral.nt)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (((X0 @ X1) @ X4) @ X6)) @ (((X0 @ X1) @ X2) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6))))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.ORL_bt_lb,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORL_bt_lb @ X1) @ X0) @ cHOL4.enumeral.nt)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORL_bt_lb @ X1) @ X0) @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X4))) @ ((cHOL4.bool./\ @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X1) @ X0) @ X5) @ X3)) @ (((cHOL4.fmapal.ORL_bt_lb @ X1) @ X3) @ X4))))))))))))))))) (Tfmapal.ORL_bt_ub_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ cHOL4.enumeral.nt) @ X2)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((X0 @ X1) @ X3) @ X4)) @ (((X0 @ X1) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6)) @ X2)))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X7) @ X8) @ X9))))))))))) (Tfmapal.ORL_bt_ub,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORL_bt_ub @ X1) @ cHOL4.enumeral.nt) @ X0)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmapal.ORL_bt_ub @ X1) @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X4)) @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.fmapal.ORL_bt_ub @ X1) @ X5) @ X3)) @ ((((cHOL4.fmapal.ORL_bt_lb_ub @ X1) @ X3) @ X4) @ X0))))))))))))))))) (Tfmapal.ORL_bt_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.enumeral.nt)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ X1) @ (((cHOL4.enumeral.node @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5)))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tfmapal.ORL_bt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_bt @ X4) @ cHOL4.enumeral.nt)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.fmapal.ORL_bt @ X4) @ (((cHOL4.enumeral.node @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2))) @ ((cHOL4.bool./\ @ (((cHOL4.fmapal.ORL_bt_ub @ X4) @ X3) @ X1)) @ (((cHOL4.fmapal.ORL_bt_lb @ X4) @ X1) @ X2))))))))))))))) (Tfmapal.better_bt_to_orl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmapal.bt_to_orl @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.fmapal.ORL_bt @ X0) @ X1)) @ ((cHOL4.enumeral.bt_to_list_ac @ X1) @ cHOL4.list.NIL)) @ (((cHOL4.fmapal.bt_to_orl_ac @ X0) @ X1) @ cHOL4.list.NIL)))))))) (Tfmapal.list_rplacv_cn_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ cHOL4.list.NIL) @ X3)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X4))) @ (((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X6) @ (^[X7]: (X3 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X7)))))) @ (((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6)) @ X3)))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (((X0 @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ X10) @ X11))))))))))))) (Tfmapal.list_rplacv_cn,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.list_rplacv_cn @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ cHOL4.list.NIL) @ X2)) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmapal.list_rplacv_cn @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X5)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X4)) @ (X2 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X5))) @ (((cHOL4.fmapal.list_rplacv_cn @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X5) @ (^[X6]: (X2 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X6)))))))))))))))))))) (Tfmapal.fmap_FDOM_rec,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmapal.fmap @ cHOL4.list.NIL)))) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmapal.fmap @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X3))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmapal.fmap @ X3))))))))))))))) (Tfmapal.list_rplacv_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.list.NIL)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmapal.fmap @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmapal.fmap @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ (cHOL4.fmapal.fmap @ X2)) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.fmapal.fmap @ X3)))))) @ (((cHOL4.fmapal.list_rplacv_cn @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ (^[X4]: X4)))))))))) (Tfmapal.bt_rplacv_cn_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ cHOL4.enumeral.nt) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X6)) @ cHOL4.toto.GREATER)) @ ((((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X8) @ (^[X9]: (X4 @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X9)))))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X1) @ X2) @ X6)) @ cHOL4.toto.LESS)) @ ((((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X5) @ (^[X9]: (X4 @ (((cHOL4.enumeral.node @ X9) @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X8))))))) @ ((((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (((cHOL4.enumeral.node @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X8)) @ X4)))))))))))))))))))) @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((((X0 @ X10) @ ((cHOL4.pair.|comma| @ X11) @ X12)) @ X13) @ X14))))))))))))))) (Tfmapal.bt_rplacv_cn,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_rplacv_cn @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ cHOL4.enumeral.nt) @ X2)) @ cHOL4.enumeral.nt)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.fmapal.bt_rplacv_cn @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ (((cHOL4.enumeral.node @ X7) @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X6)) @ X2)) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X3) @ X1) @ X5)) @ ((((cHOL4.fmapal.bt_rplacv_cn @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X7) @ (^[X8]: (X2 @ (((cHOL4.enumeral.node @ X8) @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X6))))) @ (X2 @ (((cHOL4.enumeral.node @ X7) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X6))) @ ((((cHOL4.fmapal.bt_rplacv_cn @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X6) @ (^[X8]: (X2 @ (((cHOL4.enumeral.node @ X7) @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X8)))))))))))))))))))))))) (Tfmapal.bt_rplacv_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ cHOL4.enumeral.nt)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ ((cHOL4.fmapal.FMAPAL @ X0) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.finite_map.FUPDATE @ ((cHOL4.fmapal.FMAPAL @ X0) @ X3)) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.fmapal.FMAPAL @ X0) @ X4)))))) @ ((((cHOL4.fmapal.bt_rplacv_cn @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X3) @ (^[X5]: X5)))))))))))) (Tfmapal.FUN_fmap_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.fmapal.fmap @ ((cHOL4.list.MAP @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X0 @ X2)))) @ X1))) @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tfmapal.fmap_ORWL_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.fmapal.ORWL @ X0) @ (cHOL4.fmapal.fmap @ X1)) @ ((cHOL4.fmapal.incr_sort @ X0) @ X1))))))) (Tfmaptree.construct_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmaptree.construct @ X0) @ X1) @ X2)) @ (((cHOL4.list.list_CASE @ X2) @ (cHOL4.option.SOME @ X0)) @ (^[X3]: (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X1))) @ (((cHOL4.finite_map.FAPPLY @ X1) @ X3) @ X4)) @ cHOL4.option.NONE)))))))))))) (Tfmaptree.wf_def,((cHOL4.min.= @ cHOL4.fmaptree.wf) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.fmaptree.construct @ X2) @ X3))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.finite_map.FDOM @ X3))) @ (X1 @ ((cHOL4.finite_map.FAPPLY @ X3) @ X4))))))))))) @ (X1 @ X0))))) @ (X1 @ X0))))))) (Tfmaptree.fmaptree_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.fmaptree.wf) @ X0)))) (Tfmaptree.fmap_bij_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fmaptree.fromF @ (cHOL4.fmaptree.toF @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.fmaptree.wf @ X1)) @ ((cHOL4.min.= @ (cHOL4.fmaptree.toF @ (cHOL4.fmaptree.fromF @ X1))) @ X1)))))) (Tfmaptree.FTNode_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmaptree.FTNode @ X0) @ X1)) @ (cHOL4.fmaptree.fromF @ ((cHOL4.fmaptree.construct @ X0) @ ((cHOL4.finite_map.o_f @ cHOL4.fmaptree.toF) @ X1))))))))) (Tfmaptree.item_map_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ X0) @ ((cHOL4.fmaptree.FTNode @ (cHOL4.fmaptree.item @ X0)) @ (cHOL4.fmaptree.map @ X0)))))) (Tfmaptree.apply_path_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmaptree.apply_path @ cHOL4.list.NIL) @ X0)) @ (cHOL4.option.SOME @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.fmaptree.apply_path @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmaptree.map @ X0)))) @ ((cHOL4.fmaptree.apply_path @ X2) @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.fmaptree.map @ X0)) @ X1))) @ cHOL4.option.NONE)))))))))) (Tfmaptree.update_at_path_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmaptree.update_at_path @ cHOL4.list.NIL) @ X0) @ X1)) @ (cHOL4.option.SOME @ ((cHOL4.fmaptree.FTNode @ X0) @ (cHOL4.fmaptree.map @ X1))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmaptree.update_at_path @ ((cHOL4.list.CONS @ X2) @ X3)) @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmaptree.map @ X1)))) @ (((cHOL4.option.option_CASE @ (((cHOL4.fmaptree.update_at_path @ X3) @ X0) @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.fmaptree.map @ X1)) @ X2))) @ cHOL4.option.NONE) @ (^[X4]: (cHOL4.option.SOME @ ((cHOL4.fmaptree.FTNode @ (cHOL4.fmaptree.item @ X1)) @ ((cHOL4.finite_map.FUPDATE @ (cHOL4.fmaptree.map @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X4))))))) @ cHOL4.option.NONE)))))))))))) (Tfmaptree.fupd_at_path_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmaptree.fupd_at_path @ cHOL4.list.NIL) @ X0) @ X1)) @ (X0 @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.fmaptree.fupd_at_path @ ((cHOL4.list.CONS @ X2) @ X3)) @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ (cHOL4.fmaptree.map @ X1)))) @ (((cHOL4.option.option_CASE @ (((cHOL4.fmaptree.fupd_at_path @ X3) @ X0) @ ((cHOL4.finite_map.FAPPLY @ (cHOL4.fmaptree.map @ X1)) @ X2))) @ cHOL4.option.NONE) @ (^[X4]: (cHOL4.option.SOME @ ((cHOL4.fmaptree.FTNode @ (cHOL4.fmaptree.item @ X1)) @ ((cHOL4.finite_map.FUPDATE @ (cHOL4.fmaptree.map @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X4))))))) @ cHOL4.option.NONE)))))))))))) (Tfmaptree.relrec_def,((cHOL4.min.= @ cHOL4.fmaptree.relrec) @ (^[X0]: (^[X1]: (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.fmaptree.FTNode @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (((X0 @ X4) @ X6) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X6)) @ (cHOL4.finite_map.FDOM @ X5))) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X7) @ (cHOL4.finite_map.FDOM @ X5))) @ ((X3 @ ((cHOL4.finite_map.FAPPLY @ X5) @ X7)) @ ((cHOL4.finite_map.FAPPLY @ X6) @ X7))))))))))))))) @ ((X3 @ X1) @ X2))))))) @ ((X3 @ X1) @ X2))))))))) (Tfmaptree.fmtreerec_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fmaptree.fmtreerec @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: (((cHOL4.fmaptree.relrec @ X0) @ X1) @ X2))))))))) (Tfmaptree.wf_rules,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X1))) @ (cHOL4.fmaptree.wf @ ((cHOL4.finite_map.FAPPLY @ X1) @ X2)))))) @ (cHOL4.fmaptree.wf @ ((cHOL4.fmaptree.construct @ X0) @ X1)))))))) (Tfmaptree.wf_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ (X0 @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)))))) @ (X0 @ ((cHOL4.fmaptree.construct @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.fmaptree.wf @ X4)) @ (X0 @ X4)))))))) (Tfmaptree.wf_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.fmaptree.wf @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3))) @ (X0 @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3))))))) @ (X0 @ ((cHOL4.fmaptree.construct @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.fmaptree.wf @ X4)) @ (X0 @ X4)))))))) (Tfmaptree.wf_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fmaptree.wf @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.fmaptree.construct @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ (cHOL4.fmaptree.wf @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)))))))))))))) (Tfmaptree.FTNode_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.fmaptree.FTNode @ X1) @ X3)) @ ((cHOL4.fmaptree.FTNode @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.min.= @ X3) @ X2)))))))))))) (Tfmaptree.fmaptree_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.fmaptree.FTNode @ X1) @ X2))))))))) (Tfmaptree.item_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.fmaptree.item @ ((cHOL4.fmaptree.FTNode @ X0) @ X1))) @ X0)))))) (Tfmaptree.map_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.fmaptree.map @ ((cHOL4.fmaptree.FTNode @ X0) @ X1))) @ X1)))))) (Tfmaptree.ft_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.finite_map.FDOM @ X2))) @ (X0 @ ((cHOL4.finite_map.FAPPLY @ X2) @ X3)))))) @ (X0 @ ((cHOL4.fmaptree.FTNode @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X4]: (X0 @ X4))))))) (Tfmaptree.applicable_paths_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fmaptree.apply_path @ X1) @ X0)) @ (cHOL4.option.SOME @ X2))))))))))) (Tfmaptree.apply_path_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fmaptree.apply_path @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ X0)) @ (((cHOL4.option.option_CASE @ ((cHOL4.fmaptree.apply_path @ X2) @ X0)) @ cHOL4.option.NONE) @ (^[X3]: ((cHOL4.finite_map.FLOOKUP @ (cHOL4.fmaptree.map @ X3)) @ X1))))))))))) (Tfmaptree.relrec_rules,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X3)) @ (cHOL4.finite_map.FDOM @ X2))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.finite_map.FDOM @ X2))) @ (((cHOL4.fmaptree.relrec @ X0) @ ((cHOL4.finite_map.FAPPLY @ X2) @ X4)) @ ((cHOL4.finite_map.FAPPLY @ X3) @ X4))))))) @ (((cHOL4.fmaptree.relrec @ X0) @ ((cHOL4.fmaptree.FTNode @ X1) @ X2)) @ (((X0 @ X1) @ X3) @ X2)))))))))))) (Tfmaptree.relrec_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X4)) @ (cHOL4.finite_map.FDOM @ X3))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.finite_map.FDOM @ X3))) @ ((X1 @ ((cHOL4.finite_map.FAPPLY @ X3) @ X5)) @ ((cHOL4.finite_map.FAPPLY @ X4) @ X5))))))) @ ((X1 @ ((cHOL4.fmaptree.FTNode @ X2) @ X3)) @ (((X0 @ X2) @ X4) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (((cHOL4.fmaptree.relrec @ X0) @ X6) @ X7)) @ ((X1 @ X6) @ X7)))))))))))) (Tfmaptree.relrec_strongind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X4)) @ (cHOL4.finite_map.FDOM @ X3))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.finite_map.FDOM @ X3))) @ ((cHOL4.bool./\ @ (((cHOL4.fmaptree.relrec @ X0) @ ((cHOL4.finite_map.FAPPLY @ X3) @ X5)) @ ((cHOL4.finite_map.FAPPLY @ X4) @ X5))) @ ((X1 @ ((cHOL4.finite_map.FAPPLY @ X3) @ X5)) @ ((cHOL4.finite_map.FAPPLY @ X4) @ X5)))))))) @ ((X1 @ ((cHOL4.fmaptree.FTNode @ X2) @ X3)) @ (((X0 @ X2) @ X4) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (((cHOL4.fmaptree.relrec @ X0) @ X6) @ X7)) @ ((X1 @ X6) @ X7)))))))))))) (Tfmaptree.relrec_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.fmaptree.relrec @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.fmaptree.FTNode @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (((X0 @ X3) @ X5) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ X5)) @ (cHOL4.finite_map.FDOM @ X4))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.finite_map.FDOM @ X4))) @ (((cHOL4.fmaptree.relrec @ X0) @ ((cHOL4.finite_map.FAPPLY @ X4) @ X6)) @ ((cHOL4.finite_map.FAPPLY @ X5) @ X6)))))))))))))))))))))) (Tfmaptree.fmtreerec_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fmaptree.fmtreerec @ X1) @ ((cHOL4.fmaptree.FTNode @ X0) @ X2))) @ (((X1 @ X0) @ ((cHOL4.finite_map.o_f @ (cHOL4.fmaptree.fmtreerec @ X1)) @ X2)) @ X2))))))))) (Tfmaptree.fmtree_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ ((cHOL4.fmaptree.FTNode @ X2) @ X3))) @ (((X0 @ X2) @ X3) @ ((cHOL4.finite_map.o_f @ X1) @ X3)))))))))))) (Tfrac.frac_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.pair.SND @ X1)))) @ X0)))) (Tfrac.frac_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.abs_frac @ (cHOL4.frac.rep_frac @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.pair.SND @ X2))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.frac.rep_frac @ (cHOL4.frac.abs_frac @ X1))) @ X1)))))) (Tfrac.frac_nmr_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.pair.FST @ (cHOL4.frac.rep_frac @ X0)))))) (Tfrac.frac_dnm_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_dnm @ X0)) @ (cHOL4.pair.SND @ (cHOL4.frac.rep_frac @ X0)))))) (Tfrac.frac_sgn_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.intExtension.SGN @ (cHOL4.frac.frac_nmr @ X0)))))) (Tfrac.frac_ainv_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ X0)) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.integer.int_neg @ (cHOL4.frac.frac_nmr @ X0))) @ (cHOL4.frac.frac_dnm @ X0))))))) (Tfrac.frac_minv_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_minv @ X0)) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.frac.frac_dnm @ X0))) @ (cHOL4.integer.ABS @ (cHOL4.frac.frac_nmr @ X0)))))))) (Tfrac.frac_0_def,((cHOL4.min.= @ cHOL4.frac.frac_0) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tfrac.frac_1_def,((cHOL4.min.= @ cHOL4.frac.frac_1) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tfrac.les_abs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.les_abs @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.frac.frac_dnm @ X0))))))))) (Tfrac.frac_add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_add @ X0) @ X1)) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.frac.frac_dnm @ X0)))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_dnm @ X0)) @ (cHOL4.frac.frac_dnm @ X1)))))))))) (Tfrac.frac_sub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_sub @ X0) @ X1)) @ ((cHOL4.frac.frac_add @ X0) @ (cHOL4.frac.frac_ainv @ X1)))))))) (Tfrac.frac_mul_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ X0) @ X1)) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_nmr @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_dnm @ X0)) @ (cHOL4.frac.frac_dnm @ X1)))))))))) (Tfrac.frac_div_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_div @ X0) @ X1)) @ ((cHOL4.frac.frac_mul @ X0) @ (cHOL4.frac.frac_minv @ X1)))))))) (Tfrac.frac_save_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_save @ X0) @ X1)) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tfrac.frac_bij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.abs_frac @ (cHOL4.frac.rep_frac @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.pair.SND @ X2))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.frac.rep_frac @ (cHOL4.frac.abs_frac @ X1))) @ X1)))))) (Tfrac.FRAC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X0)))) @ X0)))) (Tfrac.FRAC_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))))) (Tfrac.FRAC_EQ_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_nmr @ X1))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_dnm @ X0)) @ (cHOL4.frac.frac_dnm @ X1))))))))) (Tfrac.FRAC_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))))) (Tfrac.FRAC_DNMPOS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.frac.frac_dnm @ X0))))) (Tfrac.NMR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ X0))))))) (Tfrac.DNM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.frac.frac_dnm @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ X1))))))) (Tfrac.FRAC_AINV_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.integer.int_neg @ X0)) @ X1))))))))) (Tfrac.FRAC_MINV_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_minv @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_mul @ (cHOL4.intExtension.SGN @ X0)) @ X1)) @ (cHOL4.integer.ABS @ X0))))))))))) (Tfrac.FRAC_SGN_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ (cHOL4.intExtension.SGN @ X0)))))))) (Tfrac.FRAC_ADD_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.frac.frac_add @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X3)) @ ((cHOL4.integer.int_mul @ X2) @ X1))) @ ((cHOL4.integer.int_mul @ X1) @ X3))))))))))))))) (Tfrac.FRAC_SUB_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.frac.frac_sub @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ X0) @ X3)) @ ((cHOL4.integer.int_mul @ X2) @ X1))) @ ((cHOL4.integer.int_mul @ X1) @ X3))))))))))))))) (Tfrac.FRAC_MULT_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X3))))))))))))))) (Tfrac.FRAC_DIV_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.frac.frac_div @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ X0) @ (cHOL4.intExtension.SGN @ X2))) @ X3)) @ ((cHOL4.integer.int_mul @ X1) @ (cHOL4.integer.ABS @ X2))))))))))))))))) (Tfrac.FRAC_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.frac.frac_add @ X0) @ ((cHOL4.frac.frac_add @ X1) @ X2))) @ ((cHOL4.frac.frac_add @ ((cHOL4.frac.frac_add @ X0) @ X1)) @ X2))))))))) (Tfrac.FRAC_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ X0) @ ((cHOL4.frac.frac_mul @ X1) @ X2))) @ ((cHOL4.frac.frac_mul @ ((cHOL4.frac.frac_mul @ X0) @ X1)) @ X2))))))))) (Tfrac.FRAC_ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_add @ X0) @ X1)) @ ((cHOL4.frac.frac_add @ X1) @ X0))))))) (Tfrac.FRAC_MUL_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ X0) @ X1)) @ ((cHOL4.frac.frac_mul @ X1) @ X0))))))) (Tfrac.FRAC_ADD_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.frac.frac_add @ X0) @ cHOL4.frac.frac_0)) @ X0)))) (Tfrac.FRAC_MUL_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ X0) @ cHOL4.frac.frac_1)) @ X0)))) (Tfrac.FRAC_1_0,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.frac.frac_1) @ cHOL4.frac.frac_0))) (Tfrac.FRAC_AINV_0,((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ cHOL4.frac.frac_0)) @ cHOL4.frac.frac_0)) (Tfrac.FRAC_AINV_AINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ (cHOL4.frac.frac_ainv @ X0))) @ X0)))) (Tfrac.FRAC_AINV_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ ((cHOL4.frac.frac_add @ X0) @ X1))) @ ((cHOL4.frac.frac_add @ (cHOL4.frac.frac_ainv @ X0)) @ (cHOL4.frac.frac_ainv @ X1)))))))) (Tfrac.FRAC_AINV_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ ((cHOL4.frac.frac_sub @ X1) @ X0))) @ ((cHOL4.frac.frac_sub @ X0) @ X1))))))) (Tfrac.FRAC_AINV_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ ((cHOL4.frac.frac_mul @ X0) @ X1))) @ ((cHOL4.frac.frac_mul @ X0) @ (cHOL4.frac.frac_ainv @ X1)))))))) (Tfrac.FRAC_AINV_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ ((cHOL4.frac.frac_mul @ X0) @ X1))) @ ((cHOL4.frac.frac_mul @ (cHOL4.frac.frac_ainv @ X0)) @ X1))))))) (Tfrac.FRAC_SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.frac.frac_sub @ X0) @ ((cHOL4.frac.frac_add @ X1) @ X2))) @ ((cHOL4.frac.frac_sub @ ((cHOL4.frac.frac_sub @ X0) @ X1)) @ X2))))))))) (Tfrac.FRAC_SUB_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.frac.frac_sub @ X0) @ ((cHOL4.frac.frac_sub @ X1) @ X2))) @ ((cHOL4.frac.frac_add @ ((cHOL4.frac.frac_sub @ X0) @ X1)) @ X2))))))))) (Tfrac.FRAC_SGN_TOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tfrac.FRAC_SGN_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.frac.frac_nmr @ X0)))))) (Tfrac.FRAC_SGN_NOT_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.frac.frac_nmr @ X0))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.frac.frac_nmr @ X0))))))) (Tfrac.FRAC_SGN_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.frac.frac_sgn @ (cHOL4.frac.frac_ainv @ X0)))) @ (cHOL4.frac.frac_sgn @ X0))))) (Tfrac.FRAC_SGN_IMP_EQGT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tfrac.FRAC_SGN_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ ((cHOL4.frac.frac_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.frac.frac_sgn @ X1)))))))) (Tfrac.FRAC_ABS_SGN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.integer.ABS @ (cHOL4.frac.frac_sgn @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tfrac.FRAC_SGN_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ ((cHOL4.frac.frac_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.frac.frac_sgn @ X1)))))))) (Tfrac.FRAC_SGN_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)))) @ X1)))))) (Tfrac.FRAC_SGN_AINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.frac.frac_sgn @ (cHOL4.frac.frac_ainv @ X0)))) @ (cHOL4.frac.frac_sgn @ X0))))) (Tfrac.FRAC_AINV_ONEONE,(cHOL4.bool.ONE_ONE @ cHOL4.frac.frac_ainv)) (Tfrac.FRAC_AINV_ONTO,(cHOL4.bool.ONTO @ cHOL4.frac.frac_ainv)) (Tfrac.FRAC_NMR_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ ((cHOL4.frac.frac_save @ X0) @ X1))) @ X0)))))) (Tfrac.FRAC_DNM_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_dnm @ ((cHOL4.frac.frac_save @ X0) @ X1))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tfrac.FRAC_0_SAVE,((cHOL4.min.= @ cHOL4.frac.frac_0) @ ((cHOL4.frac.frac_save @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ cHOL4.num.0))) (Tfrac.FRAC_1_SAVE,((cHOL4.min.= @ cHOL4.frac.frac_1) @ ((cHOL4.frac.frac_save @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0))) (Tfrac.FRAC_AINV_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.frac.frac_ainv @ ((cHOL4.frac.frac_save @ X0) @ X1))) @ ((cHOL4.frac.frac_save @ (cHOL4.integer.int_neg @ X0)) @ X1))))))) (Tfrac.FRAC_MINV_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_minv @ ((cHOL4.frac.frac_save @ X0) @ X1))) @ ((cHOL4.frac.frac_save @ ((cHOL4.integer.int_mul @ (cHOL4.intExtension.SGN @ X0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.integer.Num @ ((cHOL4.integer.int_sub @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tfrac.FRAC_ADD_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.frac.frac_add @ ((cHOL4.frac.frac_save @ X0) @ X1)) @ ((cHOL4.frac.frac_save @ X2) @ X3))) @ ((cHOL4.frac.frac_save @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ (cHOL4.integer.int_of_num @ X3))) @ ((cHOL4.integer.int_mul @ X2) @ (cHOL4.integer.int_of_num @ X1)))) @ X0)) @ X2)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X1) @ X3)) @ X1)) @ X3)))))))))))) (Tfrac.FRAC_MUL_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ ((cHOL4.frac.frac_save @ X0) @ X1)) @ ((cHOL4.frac.frac_save @ X2) @ X3))) @ ((cHOL4.frac.frac_save @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X1) @ X3)) @ X1)) @ X3)))))))))))) (Tgcdset.gcdset_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.gcdset.gcdset @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY)))) @ cHOL4.num.0) @ (cHOL4.pred_set.MAX_SET @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.while.LEAST @ ((cHOL4.pred_set.DELETE @ X0) @ cHOL4.num.0))))))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.divides.divides @ X2) @ X3)))))))))))))) (Tgcdset.gcdset_divides,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.divides.divides @ (cHOL4.gcdset.gcdset @ X0)) @ X1))))))) (Tgcdset.gcdset_greatest,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.divides.divides @ X1) @ X2))))) @ ((cHOL4.divides.divides @ X1) @ (cHOL4.gcdset.gcdset @ X0)))))))) (Tgcdset.gcdset_EMPTY,((cHOL4.min.= @ (cHOL4.gcdset.gcdset @ cHOL4.pred_set.EMPTY)) @ cHOL4.num.0)) (Tgcdset.gcdset_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.gcdset.gcdset @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.gcd.gcd @ X0) @ (cHOL4.gcdset.gcdset @ X1)))))))) (Tgcd.is_gcd_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X2) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X3) @ X0)) @ ((cHOL4.divides.divides @ X3) @ X1))) @ ((cHOL4.divides.divides @ X3) @ X2)))))))))))))) (Tgcd.gcd_tupled_primitive_def,((cHOL4.min.= @ cHOL4.gcd.gcd_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ X2) @ X1))) @ ((X0 @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.- @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ (cHOL4.num.SUC @ X2))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X1) @ X2)) @ (cHOL4.num.SUC @ X2))) @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ (cHOL4.num.SUC @ X2))))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X2]: (((cHOL4.arithmetic.num_CASE @ X5) @ (cHOL4.combin.I @ X2)) @ (^[X1]: (((cHOL4.arithmetic.num_CASE @ X2) @ (cHOL4.combin.I @ (cHOL4.num.SUC @ X1))) @ (^[X6]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X6) @ X1)) @ (X3 @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X1) @ X6)) @ (cHOL4.num.SUC @ X6)))) @ (X3 @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.- @ X6) @ X1))))))))))))))))) (Tgcd.gcd_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ (cHOL4.gcd.gcd_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tgcd.lcm_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.lcm @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ cHOL4.num.0) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ ((cHOL4.gcd.gcd @ X0) @ X1))))))))) (Tgcd.IS_GCD_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ X2)) @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tgcd.IS_GCD_REF,(cHOL4.bool.! @ (^[X0]: (((cHOL4.gcd.is_gcd @ X0) @ X0) @ X0)))) (Tgcd.IS_GCD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ X2)) @ (((cHOL4.gcd.is_gcd @ X1) @ X0) @ X2))))))))) (Tgcd.IS_GCD_0R,(cHOL4.bool.! @ (^[X0]: (((cHOL4.gcd.is_gcd @ cHOL4.num.0) @ X0) @ X0)))) (Tgcd.PRIME_IS_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.divides.divides @ X0) @ X1)) @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tgcd.IS_GCD_MINUS_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (((cHOL4.gcd.is_gcd @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ X1) @ X2))) @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ X2))))))))) (Tgcd.IS_GCD_MINUS_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (((cHOL4.gcd.is_gcd @ X0) @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ X2))) @ (((cHOL4.gcd.is_gcd @ X0) @ X1) @ X2))))))))) (Tgcd.gcd_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.num.0) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.num.SUC @ X2)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ X1) @ X2))) @ ((X0 @ (cHOL4.num.SUC @ X2)) @ ((cHOL4.arithmetic.- @ X1) @ X2)))) @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((X0 @ ((cHOL4.arithmetic.- @ X2) @ X1)) @ (cHOL4.num.SUC @ X1))))) @ ((X0 @ (cHOL4.num.SUC @ X2)) @ (cHOL4.num.SUC @ X1)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tgcd.gcd_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.num.SUC @ X1)) @ cHOL4.num.0)) @ (cHOL4.num.SUC @ X1))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.num.SUC @ X1)) @ (cHOL4.num.SUC @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.gcd.gcd @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.- @ X0) @ X1))))))))))) (Tgcd.gcd_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))))))))))))) (Tgcd.GCD_IS_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.gcd.is_gcd @ X0) @ X1) @ ((cHOL4.gcd.gcd @ X0) @ X1))))))) (Tgcd.GCD_REF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X0)) @ X0)))) (Tgcd.GCD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ ((cHOL4.gcd.gcd @ X1) @ X0))))))) (Tgcd.GCD_0R,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ cHOL4.num.0)) @ X0)))) (Tgcd.GCD_0L,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ cHOL4.num.0) @ X0)) @ X0)))) (Tgcd.GCD_ADD_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.gcd.gcd @ X0) @ X1))))))) (Tgcd.GCD_ADD_R_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.gcd.gcd @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ ((cHOL4.gcd.gcd @ X0) @ X1)))))))) (Tgcd.GCD_ADD_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ ((cHOL4.gcd.gcd @ X0) @ X1))))))) (Tgcd.GCD_ADD_L_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0)) @ ((cHOL4.gcd.gcd @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X0)) @ ((cHOL4.gcd.gcd @ X0) @ X1)))))))) (Tgcd.GCD_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tgcd.GCD_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tgcd.PRIME_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tgcd.L_EUCLIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.divides.divides @ X1) @ ((cHOL4.arithmetic.* @ X0) @ X2)))) @ ((cHOL4.divides.divides @ X1) @ X2))))))))) (Tgcd.P_EUCLIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.divides.divides @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.divides.divides @ X0) @ X1)) @ ((cHOL4.divides.divides @ X0) @ X2)))))))))) (Tgcd.FACTOR_OUT_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.gcd.gcd @ X0) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.* @ X3) @ ((cHOL4.gcd.gcd @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X2) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tgcd.GCD_SUCfree_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.num.0) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X0 @ X2) @ X1)) @ ((X0 @ X1) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X0 @ X2) @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((X0 @ X2) @ X1)))) @ ((X0 @ X2) @ ((cHOL4.arithmetic.+ @ X2) @ X1))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tgcd.LINEAR_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X3) @ X1)) @ ((cHOL4.gcd.gcd @ X1) @ X0))))))))))))) (Tgcd.GCD_EFFICIENTLY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ X1) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ X0)))))))) (Tgcd.LCM_IS_LEAST_COMMON_MULTIPLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X1) @ ((cHOL4.gcd.lcm @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X0) @ ((cHOL4.gcd.lcm @ X1) @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.divides.divides @ X1) @ X2)) @ ((cHOL4.divides.divides @ X0) @ X2))) @ ((cHOL4.divides.divides @ ((cHOL4.gcd.lcm @ X1) @ X0)) @ X2))))))))))) (Tgcd.LCM_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.gcd.lcm @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.gcd.lcm @ X0) @ cHOL4.num.0)) @ cHOL4.num.0))))) (Tgcd.LCM_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.gcd.lcm @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.gcd.lcm @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Tgcd.LCM_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.gcd.lcm @ X1) @ X0)) @ ((cHOL4.gcd.lcm @ X0) @ X1))))))) (Tgcd.LCM_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.gcd.lcm @ X1) @ X0))) @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.gcd.lcm @ X0) @ X1))))))))) (Tgcd.LCM_LEAST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.gcd.lcm @ X1) @ X0)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.divides.divides @ X1) @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.divides.divides @ X0) @ X2)))))))))))) (Tgcd.GCD_COMMON_FACTOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.* @ X2) @ X0)) @ ((cHOL4.arithmetic.* @ X2) @ X1))) @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.gcd.gcd @ X0) @ X1)))))))))) (Tgcd.GCD_CANCEL_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ ((cHOL4.arithmetic.* @ X2) @ X1))) @ ((cHOL4.gcd.gcd @ X0) @ X1)))))))))) (Tgcd.BINARY_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.DIV @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.arithmetic.ODD @ X1))) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))))))))) (THolSmt.xor_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.HolSmt.xor @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (THolSmt.array_ext_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.HolSmt.array_ext @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ (X1 @ X2))))))))))) (THolSmt.ALL_DISTINCT_NIL,((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ cHOL4.list.NIL)) @ cHOL4.bool.T)) (THolSmt.ALL_DISTINCT_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))) @ (cHOL4.list.ALL_DISTINCT @ X1)))))))) (THolSmt.NOT_MEM_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ cHOL4.list.NIL)))) @ cHOL4.bool.T)))) (THolSmt.NOT_MEM_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X2)))))))))))) (THolSmt.AND_T,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.T)) @ X0)))) (THolSmt.T_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ X0)) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (THolSmt.F_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.F) @ X0)) @ ((cHOL4.bool.\/ @ cHOL4.bool.F) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (THolSmt.CONJ_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X2)) @ ((cHOL4.bool./\ @ X1) @ X3))))))))))))) (THolSmt.NOT_NOT_ELIM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X0)))) (THolSmt.NOT_FALSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F))))) (THolSmt.NNF_CONJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X0)) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ X3)) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ X0) @ X1))) @ ((cHOL4.bool.\/ @ X2) @ X3))))))))))))) (THolSmt.NNF_DISJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X0)) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ X3)) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X0) @ X1))) @ ((cHOL4.bool./\ @ X2) @ X3))))))))))))) (THolSmt.NNF_NOT_NOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X1))))))) (THolSmt.NEG_IFF_1_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.bool.~ @ X1))))))))) (THolSmt.NEG_IFF_1_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.bool.~ @ X1)))) @ ((cHOL4.min.= @ X1) @ X0))))))) (THolSmt.NEG_IFF_2_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ (cHOL4.bool.~ @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (THolSmt.NEG_IFF_2_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.min.= @ X0) @ (cHOL4.bool.~ @ X1)))))))) (THolSmt.DISJ_ELIM_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X0) @ X1)) @ X2)) @ ((cHOL4.min.==> @ X0) @ X2))))))))) (THolSmt.DISJ_ELIM_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X0) @ X1)) @ X2)) @ ((cHOL4.min.==> @ X1) @ X2))))))))) (THolSmt.IMP_DISJ_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ X1))))))) (THolSmt.IMP_DISJ_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ X1)) @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (THolSmt.IMP_FALSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F)) @ X0)))) (THolSmt.AND_IMP_INTRO_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ X2)) @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X1) @ X2)))))))))) (THolSmt.VALID_IFF_TRUE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ X0) @ ((cHOL4.min.= @ X0) @ cHOL4.bool.T))))) (THolSmt.d001,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0))))))) (THolSmt.d002,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ X0)))))))) (THolSmt.d003,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0))))))) (THolSmt.d004,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ X0)))))))) (THolSmt.d005,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0)))))))) (THolSmt.d006,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (THolSmt.d007,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ X0))) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (THolSmt.d008,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X0)))) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (THolSmt.d009,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))))))))) (THolSmt.d010,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ X1) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))))))))) (THolSmt.d011,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ X1) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ X0))))))))) (THolSmt.d012,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ X1) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X0)))))))))) (THolSmt.d013,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (THolSmt.d014,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ X0)))))))) (THolSmt.d015,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X1) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0))))))) (THolSmt.d016,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0)))))))) (THolSmt.d017,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ X2) @ ((cHOL4.min.= @ X0) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)))))))))) (THolSmt.d018,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.= @ X1) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)))))))))) (THolSmt.d019,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ X2) @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ X0))))))))) (THolSmt.d020,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ X1))))))))) (THolSmt.d021,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ X2) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ (((cHOL4.bool.COND @ X2) @ X0) @ X1))))))))))) (THolSmt.d022,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ (((cHOL4.bool.COND @ X2) @ X1) @ X0))))))))))) (THolSmt.d023,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ (cHOL4.bool.~ @ X1)))))))))) (THolSmt.d024,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ ((cHOL4.bool.\/ @ X2) @ (cHOL4.bool.~ @ X0)))))))))) (THolSmt.d025,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.bool.COND @ X2) @ (cHOL4.bool.~ @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ X1))))))))) (THolSmt.d026,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.bool.COND @ X2) @ X1) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool.\/ @ X2) @ X0))))))))) (THolSmt.d027,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (((cHOL4.bool.COND @ X2) @ X1) @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ X1))))))))) (THolSmt.d028,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (((cHOL4.bool.COND @ X2) @ X1) @ X0))) @ ((cHOL4.bool.\/ @ X2) @ X0))))))))) (THolSmt.r001,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.min.= @ X0) @ X1))))))) (THolSmt.r002,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r003,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ cHOL4.bool.T)) @ X0)))) (THolSmt.r004,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.bool.T) @ X0)) @ X0)))) (THolSmt.r005,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F)) @ (cHOL4.bool.~ @ X0))))) (THolSmt.r006,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.bool.F) @ X0)) @ (cHOL4.bool.~ @ X0))))) (THolSmt.r007,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (THolSmt.r008,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X0)))) @ ((cHOL4.min.= @ X1) @ X0))))))) (THolSmt.r009,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X1)) @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (THolSmt.r010,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.T) @ X1) @ X0)) @ X1)))))) (THolSmt.r011,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ cHOL4.bool.F) @ X1) @ X0)) @ X0)))))) (THolSmt.r012,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X1) @ X0) @ cHOL4.bool.T)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0))))))) (THolSmt.r013,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X1) @ X0) @ cHOL4.bool.T)) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X1)))))))) (THolSmt.r014,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X1) @ X0) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (THolSmt.r015,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X1) @ X0) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (THolSmt.r016,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X1) @ (cHOL4.bool.~ @ X0)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X0)))))))) (THolSmt.r017,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X1) @ (cHOL4.bool.~ @ X0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ X0)) @ X1))))))) (THolSmt.r018,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ (cHOL4.bool.~ @ X2)) @ X1) @ X0)) @ (((cHOL4.bool.COND @ X2) @ X0) @ X1))))))))) (THolSmt.r019,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ X3) @ (cHOL4.bool.~ @ X2))) @ X0) @ X1))))))))))) (THolSmt.r020,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X2)) @ X3)) @ X0) @ X1))))))))))) (THolSmt.r021,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ X3) @ X2)) @ X1) @ X0))))))))))) (THolSmt.r022,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ X2) @ X3)) @ X1) @ X0))))))))))) (THolSmt.r023,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ X2) @ (((cHOL4.bool.COND @ X3) @ X1) @ X0))) @ (((cHOL4.bool.COND @ X3) @ X2) @ X0))))))))))) (THolSmt.r024,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ X1) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ X3) @ X2)) @ X1) @ X0))))))))))) (THolSmt.r025,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ X1) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ X2) @ X3)) @ X1) @ X0))))))))))) (THolSmt.r026,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ X2) @ X0))) @ ((cHOL4.min.= @ X2) @ (((cHOL4.bool.COND @ X3) @ X1) @ X0)))))))))))) (THolSmt.r027,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.min.= @ X1) @ (((cHOL4.bool.COND @ X3) @ X2) @ X0)))))))))))) (THolSmt.r028,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.min.= @ X1) @ (((cHOL4.bool.COND @ X3) @ X2) @ X0)))))))))))) (THolSmt.r029,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ X1) @ X0))))))) (THolSmt.r030,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (THolSmt.r031,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0))))))) (THolSmt.r032,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X1) @ X0)) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X1)))))))) (THolSmt.r033,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ cHOL4.bool.T) @ X0)) @ X0)))) (THolSmt.r034,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.T)) @ cHOL4.bool.T)))) (THolSmt.r035,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ cHOL4.bool.F) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r036,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ X0) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r037,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ X0) @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X2))))))))))) (THolSmt.r038,((cHOL4.min.= @ (cHOL4.bool.~ @ cHOL4.bool.T)) @ cHOL4.bool.F)) (THolSmt.r039,((cHOL4.min.= @ (cHOL4.bool.~ @ cHOL4.bool.F)) @ cHOL4.bool.T)) (THolSmt.r040,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X0)))) (THolSmt.r041,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X1) @ X0)) @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (THolSmt.r042,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ cHOL4.bool.T)) @ cHOL4.bool.T)))) (THolSmt.r043,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X0))) @ cHOL4.bool.T)))) (THolSmt.r044,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r045,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.T) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r046,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ cHOL4.bool.F)) @ X0)))) (THolSmt.r047,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ cHOL4.bool.F) @ X0)) @ X0)))) (THolSmt.r048,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ X0)) @ ((cHOL4.bool./\ @ X0) @ X1))))))) (THolSmt.r049,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.T)) @ X0)))) (THolSmt.r050,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ X0)) @ X0)))) (THolSmt.r051,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ cHOL4.bool.F)) @ cHOL4.bool.F)))) (THolSmt.r052,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.F) @ X0)) @ cHOL4.bool.F)))) (THolSmt.r053,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0))))))))) (THolSmt.r054,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X1)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ X0))))))))) (THolSmt.r055,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ (cHOL4.bool.~ @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0)))))))) (THolSmt.r056,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X1) @ X0)))))))) (THolSmt.r057,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1))))))))) (THolSmt.r058,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X1)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ X1)))))))) (THolSmt.r059,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ (cHOL4.bool.~ @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X1))))))))) (THolSmt.r060,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X0) @ X1)))))))) (THolSmt.r061,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X0) @ (X1 @ X0)) @ X1)) @ X1)))))) (THolSmt.r062,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)))) @ cHOL4.bool.F)))) (THolSmt.r063,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0)))))))) (THolSmt.r064,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (THolSmt.r065,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r066,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ X1))))))))) (THolSmt.r067,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r068,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ X2))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r069,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r070,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r071,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r072,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2))) @ (cHOL4.integer.int_neg @ X1)))))))))) (THolSmt.r073,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2))) @ X1))))))))) (THolSmt.r074,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (THolSmt.r075,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ X1)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ (cHOL4.integer.int_neg @ X0)))))))))) (THolSmt.r076,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ X1)))))))) (THolSmt.r077,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_neg @ X2)))))))))) (THolSmt.r078,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X5) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X4) @ X1)) @ ((cHOL4.integer.int_mul @ X3) @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X4)) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X3)) @ X0)))) @ X5))))))))))))))) (THolSmt.r079,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (THolSmt.r080,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X0)))) (THolSmt.r081,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ X0)) @ ((cHOL4.integer.int_add @ X0) @ X1))))))) (THolSmt.r082,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X0)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (THolSmt.r083,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)) @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0)))))))))) (THolSmt.r084,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)) @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X0) @ X1)))))))))) (THolSmt.r085,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ X0) @ X2)))))))))) (THolSmt.r086,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ X2) @ X0)))))))))) (THolSmt.r087,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ X0) @ X3)))) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_add @ X3) @ X2))))))))))))) (THolSmt.r088,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ X0) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r089,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ X1) @ X0)) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r090,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ X1) @ X0)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r091,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r092,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (THolSmt.r093,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (THolSmt.r094,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r095,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_le @ X0) @ X1))))))) (THolSmt.r096,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ X0) @ X1)))))))) (THolSmt.r097,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X1) @ X0)))))))) (THolSmt.r098,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (THolSmt.r099,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (THolSmt.r100,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2))) @ (cHOL4.integer.int_neg @ X1))))))))))) (THolSmt.r101,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ X0)) @ cHOL4.bool.T)))) (THolSmt.r102,((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.bool.T)) (THolSmt.r103,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ X0)) @ ((cHOL4.integer.int_ge @ X0) @ X1))))))) (THolSmt.r104,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ X0))) @ ((cHOL4.integer.int_ge @ X0) @ X1))))))) (THolSmt.r105,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_ge @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (THolSmt.r106,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ X0)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r107,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ X0)) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r108,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.r109,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ X1)) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ X0))))))))) (THolSmt.r110,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X2)) @ X1)) @ X0)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ X2))))))))) (THolSmt.r111,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ X0)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r112,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ X1))))))))) (THolSmt.r113,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2))) @ (cHOL4.integer.int_neg @ X1)))))))))) (THolSmt.r114,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (THolSmt.r115,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X0) @ X1)))))))) (THolSmt.r116,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ X1) @ X0)))))))) (THolSmt.r117,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (THolSmt.r118,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (THolSmt.r119,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X2) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))))) (THolSmt.r120,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X2) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))))) (THolSmt.r121,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X2) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2))) @ X1)))))))))) (THolSmt.r122,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X2) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ ((cHOL4.integer.int_add @ X0) @ X3)))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_add @ X3) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)))) @ X1)))))))))))) (THolSmt.r123,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X2) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_add @ X4) @ X3))))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_add @ X4) @ ((cHOL4.integer.int_add @ X3) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2))))) @ X1)))))))))))))) (THolSmt.r124,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X2)) @ X1)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ X2)))))))))) (THolSmt.r125,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ X2)))))))))) (THolSmt.r126,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X0) @ X1)))))))) (THolSmt.r127,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X0)))) (THolSmt.r128,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_neg @ X0))))) (THolSmt.r129,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (THolSmt.r130,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X1) @ X0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X0)) @ X1))))))) (THolSmt.r131,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X1) @ X0)) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))))))) (THolSmt.r132,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X1) @ X0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ X1))))))) (THolSmt.r133,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (THolSmt.r134,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)) @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))))))))) (THolSmt.r135,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)) @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ X1)))))))))) (THolSmt.r136,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (THolSmt.r137,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ (cHOL4.realax.real_neg @ X2)))))))))) (THolSmt.r138,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ X3) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))) (THolSmt.r139,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ X3) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_add @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X3))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))) (THolSmt.r140,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ X4) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0)) @ X4))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))) (THolSmt.r141,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ X4) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_add @ X4) @ ((cHOL4.realax.real_mul @ X2) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))) (THolSmt.r142,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X4)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ X4))))))))))))) (THolSmt.r143,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ X6) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)) @ X6)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))))) (THolSmt.r144,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ X6) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r145,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ X6) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r146,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ X6) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r147,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ X6) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r148,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X6)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6))))))))))))))))) (THolSmt.r149,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X6)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6))))))))))))))))) (THolSmt.r150,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X6)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6))))))))))))))))) (THolSmt.r151,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X6)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6))))))))))))))))) (THolSmt.r152,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ X5) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5)))))))))))))))) (THolSmt.r153,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ X5) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X5)))))))))))))))) (THolSmt.r154,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.realax.real_neg @ X4))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ X4))))))))))))) (THolSmt.r155,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X5))))))))))))))) (THolSmt.r156,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6))))))))))))))))) (THolSmt.r157,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6))))))))))))))))) (THolSmt.r158,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6))))))))))))))))) (THolSmt.r159,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))) (THolSmt.r160,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_ge @ X1) @ X0)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (THolSmt.r161,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_gt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (THolSmt.r162,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X1) @ X0)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (THolSmt.r163,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X2) @ ((cHOL4.realax.real_add @ X1) @ X0))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ X1))))))))) (THolSmt.r164,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0)) @ X2)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ (cHOL4.realax.real_neg @ X2)))))))))) (THolSmt.r165,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0)) @ (cHOL4.realax.real_neg @ X2))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ X2))))))))) (THolSmt.r166,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))) (THolSmt.r167,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ X4)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.realax.real_neg @ X4)))))))))))))) (THolSmt.r168,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.realax.real_neg @ X4))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ X4))))))))))))) (THolSmt.r169,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ X4)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.realax.real_neg @ X4)))))))))))))) (THolSmt.r170,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.realax.real_neg @ X4))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ X4))))))))))))) (THolSmt.r171,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))) (THolSmt.r172,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))) (THolSmt.r173,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))) (THolSmt.r174,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))) (THolSmt.r175,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r176,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6))))))))))))))))) (THolSmt.r177,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r178,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6))))))))))))))))) (THolSmt.r179,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r180,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6))))))))))))))))) (THolSmt.r181,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6)) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6)))))))))))))))))) (THolSmt.r182,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6))))))))))))))))) (THolSmt.r183,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X5))))))))))))))) (THolSmt.r184,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_ge @ X1) @ X0)))))))) (THolSmt.r185,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0)) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ (cHOL4.realax.real_neg @ X2))))))))))) (THolSmt.r186,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0)) @ (cHOL4.realax.real_neg @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ X2)))))))))) (THolSmt.r187,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))) (THolSmt.r188,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))) (THolSmt.r189,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.realax.real_neg @ X4))))))))))))))) (THolSmt.r190,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.realax.real_neg @ X4))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ X4)))))))))))))) (THolSmt.r191,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ (cHOL4.realax.real_neg @ X4))))))))))))))) (THolSmt.r192,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0))) @ (cHOL4.realax.real_neg @ X4))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ X4)))))))))))))) (THolSmt.r193,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))))))))))))))))))) (THolSmt.r194,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6)))))))))))))))))) (THolSmt.r195,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))))))))))))))))))) (THolSmt.r196,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6)))))))))))))))))) (THolSmt.r197,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))))))))))))))))))) (THolSmt.r198,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6)))))))))))))))))) (THolSmt.r199,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X6)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X6))))))))))))))))))) (THolSmt.r200,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X6))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X6)))))))))))))))))) (THolSmt.r201,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))))))) (THolSmt.r202,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X5)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X5) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))))))) (THolSmt.r203,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5))))))))))))))))) (THolSmt.r204,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X5)))))))))))))))) (THolSmt.r205,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X5))))))))))))))))) (THolSmt.r206,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X5)))))))))))))))) (THolSmt.r207,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5))))))))))))))))) (THolSmt.r208,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X5)))))))))))))))) (THolSmt.r209,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ (cHOL4.realax.real_neg @ X5))))))))))))))))) (THolSmt.r210,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X5)))))))))))))))) (THolSmt.r211,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ X3) @ X0)))) @ X5)))))))))))))))) (THolSmt.r212,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X4)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) @ (cHOL4.realax.real_neg @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X4) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X1)) @ X0))) @ X5)))))))))))))))) (THolSmt.r213,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (THolSmt.r214,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X0)))) (THolSmt.r215,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X1) @ X0)) @ ((cHOL4.realax.real_add @ X0) @ X1))))))) (THolSmt.r216,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (THolSmt.r217,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_add @ X2) @ X1)) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ X0)))))))))) (THolSmt.r218,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_add @ X2) @ X1)) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X0) @ X1)))))))))) (THolSmt.r219,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ X0))) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_add @ X0) @ X2)))))))))) (THolSmt.r220,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ X0))) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_add @ X2) @ X0)))))))))) (THolSmt.r221,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.realax.real_neg @ X0))))) (THolSmt.r222,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X1) @ X0))) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X1)) @ X0))))))) (THolSmt.r223,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X0)))) (THolSmt.r224,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X1) @ X0)) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))))))) (THolSmt.r225,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X1) @ X0)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ X1))))))) (THolSmt.r226,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X1) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0)))))))))) (THolSmt.r227,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X1) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X2)) @ X0)) @ X1))))))))) (THolSmt.r228,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X2) @ X1)) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))))))))) (THolSmt.r229,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X2) @ X1)) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ X1)))))))))) (THolSmt.r230,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X2) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ X1)))))))))))) (THolSmt.r231,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X2) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0)) @ X1)))))))))))) (THolSmt.r232,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X2) @ X1)) @ ((cHOL4.realax.real_mul @ X3) @ X0))) @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X3)) @ X0))))))))))))) (THolSmt.r233,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (THolSmt.r234,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (THolSmt.r235,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ X0)))) (THolSmt.r236,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X1) @ X0)) @ ((cHOL4.words.word_add @ X0) @ X1))))))) (THolSmt.r237,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (THolSmt.r238,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X2) @ X0)) @ ((cHOL4.words.word_add @ X1) @ X2))) @ ((cHOL4.min.= @ X1) @ X0))))))))) (THolSmt.r239,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ X0))))))) (THolSmt.r240,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.w2w @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ X0)))))) (THolSmt.r241,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1)) @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ X0))))))))))) (THolSmt.r242,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1)) @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ X1)))))))))) (THolSmt.r243,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ X0))))))))))) (THolSmt.r244,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ X1)))))))))) (THolSmt.r245,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X1) @ X0)) @ ((cHOL4.words.word_and @ X0) @ X1))))))) (THolSmt.r246,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X2) @ ((cHOL4.words.word_and @ X1) @ X0))) @ ((cHOL4.words.word_and @ X1) @ ((cHOL4.words.word_and @ X2) @ X0)))))))))) (THolSmt.r247,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X2) @ ((cHOL4.words.word_and @ X1) @ X0))) @ ((cHOL4.words.word_and @ ((cHOL4.words.word_and @ X2) @ X1)) @ X0))))))))) (THolSmt.r248,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.words.word_and @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))))) (THolSmt.r249,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.words.word_and @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (THolSmt.r250,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.num.0) @ X0)) @ X0)))) (THolSmt.r251,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.words.word_ls @ X0) @ X1)))))))) (THolSmt.r252,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X1) @ X0)) @ ((cHOL4.words.word_mul @ X0) @ X1))))))) (THolSmt.r253,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ cHOL4.num.0) @ cHOL4.num.0) @ X0)) @ X0)))) (THolSmt.r254,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_and @ X2) @ X1)) @ X0)) @ ((cHOL4.words.word_and @ X2) @ ((cHOL4.words.word_and @ X1) @ X0)))))))))) (THolSmt.r255,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ X0)))) (THolSmt.t001,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ (X3 @ X2)) @ ((((cHOL4.combin.UPDATE @ X1) @ X0) @ X3) @ X2)))))))))))) (THolSmt.t002,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ (X3 @ X1)) @ ((((cHOL4.combin.UPDATE @ X2) @ X0) @ X3) @ X1)))))))))))) (THolSmt.t003,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ ((((cHOL4.combin.UPDATE @ X1) @ X0) @ X3) @ X2)) @ (X3 @ X2)))))))))))) (THolSmt.t004,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.min.= @ ((((cHOL4.combin.UPDATE @ X2) @ X0) @ X3) @ X1)) @ (X3 @ X1)))))))))))) (THolSmt.t005,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ ((cHOL4.HolSmt.array_ext @ X1) @ X0))) @ (X0 @ ((cHOL4.HolSmt.array_ext @ X1) @ X0)))))))))) (THolSmt.t006,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (THolSmt.t007,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.integer.int_ge @ X1) @ X0))))))) (THolSmt.t008,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.t009,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (THolSmt.t010,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X1) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ X1) @ X0))))))))) (THolSmt.t011,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (THolSmt.t012,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (THolSmt.t013,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_ge @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (THolSmt.t014,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_ge @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (THolSmt.t015,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.integer.int_ge @ X1) @ X0)) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (THolSmt.t016,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.real.real_ge @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (THolSmt.t017,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.word_1comp @ X0)))))) (THolSmt.t018,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.fcp.fcp_index @ X1) @ X2)) @ ((cHOL4.fcp.fcp_index @ X0) @ X2)))))))))) (THolSmt.t019,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.word_1comp @ X0))) @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))))) (THolSmt.t020,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.word_1comp @ X0)))))) (THolSmt.t021,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (THolSmt.t022,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0))))) (THolSmt.t023,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.word_1comp @ X0)))))) (THolSmt.t024,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.word_1comp @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)))))) (THolSmt.t025,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.words.word_or @ (cHOL4.words.word_1comp @ X1)) @ (cHOL4.words.word_1comp @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)))))))))) (THolSmt.t026,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (THolSmt.t027,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.min.= @ X0) @ (((cHOL4.bool.COND @ X1) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (THolSmt.t028,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X1)) @ ((cHOL4.min.= @ X0) @ (((cHOL4.bool.COND @ X1) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (THolSmt.t029,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ X0) @ (((cHOL4.bool.COND @ X1) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (THolSmt.t030,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.min.= @ X0) @ (((cHOL4.bool.COND @ X1) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (THolSmt.t031,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))) @ (cHOL4.words.sw2sw @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)))))) (THolSmt.t032,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))) @ (cHOL4.words.sw2sw @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)))))))) (THolSmt.t033,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.words.n2w @ cHOL4.num.0)) @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))) @ (cHOL4.words.sw2sw @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (THolSmt.t034,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.fcp.fcp_index @ X1) @ cHOL4.num.0)) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))))))))) (THolSmt.t035,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ cHOL4.num.0) @ cHOL4.num.0) @ X0)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (THolSmt.p001,((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (THolSmt.p002,((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (THolSmt.p003,((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (THolSmt.p004,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (THolSmt.p005,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (THolSmt.p006,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (THolSmt.p007,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (THolSmt.p008,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (THolSmt.p009,((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) (Thrat.trat_1,((cHOL4.min.= @ cHOL4.hrat.trat_1) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ cHOL4.num.0))) (Thrat.trat_inv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.hrat.trat_inv @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.pair.|comma| @ X1) @ X0))))))) (Thrat.trat_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_add @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ (cHOL4.num.SUC @ X1))))) @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X1)) @ (cHOL4.num.SUC @ X3)))))))))))))) (Thrat.trat_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_mul @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X2)))) @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X1)) @ (cHOL4.num.SUC @ X3)))))))))))))) (Thrat.trat_sucint,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.hrat.trat_sucint @ cHOL4.num.0)) @ cHOL4.hrat.trat_1)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.trat_sucint @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.hrat.trat_add @ (cHOL4.hrat.trat_sucint @ X0)) @ cHOL4.hrat.trat_1)))))) (Thrat.trat_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_eq @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.arithmetic.* @ (cHOL4.num.SUC @ X2)) @ (cHOL4.num.SUC @ X1))))))))))))) (Thrat.hrat_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.hrat.trat_eq @ X2))))))) @ X0)))) (Thrat.hrat_bijections,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_ABS_CLASS @ (cHOL4.hrat.hrat_REP_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ X3) @ X3)) @ ((cHOL4.min.= @ X2) @ (cHOL4.hrat.trat_eq @ X3)))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.hrat.hrat_REP_CLASS @ (cHOL4.hrat.hrat_ABS_CLASS @ X1))) @ X1)))))) (Thrat.hrat_REP_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_REP @ X0)) @ (cHOL4.min.|at| @ (cHOL4.hrat.hrat_REP_CLASS @ X0)))))) (Thrat.hrat_ABS_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_ABS @ X0)) @ (cHOL4.hrat.hrat_ABS_CLASS @ (cHOL4.hrat.trat_eq @ X0)))))) (Thrat.hrat_1,((cHOL4.min.= @ cHOL4.hrat.hrat_1) @ (cHOL4.hrat.hrat_ABS @ cHOL4.hrat.trat_1))) (Thrat.hrat_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_inv @ X0)) @ (cHOL4.hrat.hrat_ABS @ (cHOL4.hrat.trat_inv @ (cHOL4.hrat.hrat_REP @ X0))))))) (Thrat.hrat_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ (cHOL4.hrat.hrat_ABS @ ((cHOL4.hrat.trat_add @ (cHOL4.hrat.hrat_REP @ X0)) @ (cHOL4.hrat.hrat_REP @ X1))))))))) (Thrat.hrat_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ (cHOL4.hrat.hrat_ABS @ ((cHOL4.hrat.trat_mul @ (cHOL4.hrat.hrat_REP @ X0)) @ (cHOL4.hrat.hrat_REP @ X1))))))))) (Thrat.hrat_sucint,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_sucint @ X0)) @ (cHOL4.hrat.hrat_ABS @ (cHOL4.hrat.trat_sucint @ X0)))))) (Thrat.TRAT_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.hrat.trat_eq @ X0) @ X0)))) (Thrat.TRAT_EQ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ X1) @ X0))))))) (Thrat.TRAT_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ X1) @ X2))) @ ((cHOL4.hrat.trat_eq @ X0) @ X2))))))))) (Thrat.TRAT_EQ_AP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ X0) @ X1))))))) (Thrat.TRAT_ADD_SYM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_add @ X0) @ X1)) @ ((cHOL4.hrat.trat_add @ X1) @ X0))))))) (Thrat.TRAT_MUL_SYM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_mul @ X0) @ X1)) @ ((cHOL4.hrat.trat_mul @ X1) @ X0))))))) (Thrat.TRAT_INV_WELLDEFINED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ (cHOL4.hrat.trat_inv @ X0)) @ (cHOL4.hrat.trat_inv @ X1)))))))) (Thrat.TRAT_ADD_WELLDEFINED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_add @ X0) @ X2)) @ ((cHOL4.hrat.trat_add @ X1) @ X2)))))))))) (Thrat.TRAT_ADD_WELLDEFINED2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ X2) @ X3))) @ ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_add @ X0) @ X2)) @ ((cHOL4.hrat.trat_add @ X1) @ X3)))))))))))) (Thrat.TRAT_MUL_WELLDEFINED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ X0) @ X2)) @ ((cHOL4.hrat.trat_mul @ X1) @ X2)))))))))) (Thrat.TRAT_MUL_WELLDEFINED2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.hrat.trat_eq @ X2) @ X3))) @ ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ X0) @ X2)) @ ((cHOL4.hrat.trat_mul @ X1) @ X3)))))))))))) (Thrat.TRAT_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_add @ X0) @ X1)) @ ((cHOL4.hrat.trat_add @ X1) @ X0))))))) (Thrat.TRAT_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_add @ X0) @ ((cHOL4.hrat.trat_add @ X1) @ X2))) @ ((cHOL4.hrat.trat_add @ ((cHOL4.hrat.trat_add @ X0) @ X1)) @ X2))))))))) (Thrat.TRAT_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ X0) @ X1)) @ ((cHOL4.hrat.trat_mul @ X1) @ X0))))))) (Thrat.TRAT_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ X0) @ ((cHOL4.hrat.trat_mul @ X1) @ X2))) @ ((cHOL4.hrat.trat_mul @ ((cHOL4.hrat.trat_mul @ X0) @ X1)) @ X2))))))))) (Thrat.TRAT_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ X0) @ ((cHOL4.hrat.trat_add @ X1) @ X2))) @ ((cHOL4.hrat.trat_add @ ((cHOL4.hrat.trat_mul @ X0) @ X1)) @ ((cHOL4.hrat.trat_mul @ X0) @ X2)))))))))) (Thrat.TRAT_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ cHOL4.hrat.trat_1) @ X0)) @ X0)))) (Thrat.TRAT_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_mul @ (cHOL4.hrat.trat_inv @ X0)) @ X0)) @ cHOL4.hrat.trat_1)))) (Thrat.TRAT_NOZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.hrat.trat_eq @ ((cHOL4.hrat.trat_add @ X0) @ X1)) @ X0))))))) (Thrat.TRAT_ADD_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.hrat.trat_eq @ X0) @ ((cHOL4.hrat.trat_add @ X1) @ X2))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.hrat.trat_eq @ X1) @ ((cHOL4.hrat.trat_add @ X0) @ X2))))))))))) (Thrat.TRAT_SUCINT_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.hrat.trat_eq @ (cHOL4.hrat.trat_sucint @ X0)) @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.num.0))))) (Thrat.TRAT_ARCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.hrat.trat_eq @ (cHOL4.hrat.trat_sucint @ X1)) @ ((cHOL4.hrat.trat_add @ X0) @ X2))))))))) (Thrat.TRAT_SUCINT,((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ (cHOL4.hrat.trat_sucint @ cHOL4.num.0)) @ cHOL4.hrat.trat_1)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.hrat.trat_eq @ (cHOL4.hrat.trat_sucint @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.hrat.trat_add @ (cHOL4.hrat.trat_sucint @ X0)) @ cHOL4.hrat.trat_1)))))) (Thrat.TRAT_EQ_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.trat_eq @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.hrat.trat_eq @ X0)) @ (cHOL4.hrat.trat_eq @ X1)))))))) (Thrat.hrat_ABS_REP_CLASS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_ABS_CLASS @ (cHOL4.hrat.hrat_REP_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hrat.trat_eq @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.hrat.trat_eq @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.hrat.hrat_REP_CLASS @ (cHOL4.hrat.hrat_ABS_CLASS @ X1))) @ X1)))))) (Thrat.hrat_QUOTIENT,(((cHOL4.quotient.QUOTIENT @ cHOL4.hrat.trat_eq) @ cHOL4.hrat.hrat_ABS) @ cHOL4.hrat.hrat_REP)) (Thrat.HRAT_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ ((cHOL4.hrat.hrat_add @ X1) @ X0))))))) (Thrat.HRAT_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_add @ X0) @ ((cHOL4.hrat.hrat_add @ X1) @ X2))) @ ((cHOL4.hrat.hrat_add @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ X2))))))))) (Thrat.HRAT_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ ((cHOL4.hrat.hrat_mul @ X1) @ X0))))))) (Thrat.HRAT_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ ((cHOL4.hrat.hrat_mul @ X1) @ X2))) @ ((cHOL4.hrat.hrat_mul @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ X2))))))))) (Thrat.HRAT_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ ((cHOL4.hrat.hrat_add @ X1) @ X2))) @ ((cHOL4.hrat.hrat_add @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ ((cHOL4.hrat.hrat_mul @ X0) @ X2)))))))))) (Thrat.HRAT_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ cHOL4.hrat.hrat_1) @ X0)) @ X0)))) (Thrat.HRAT_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ (cHOL4.hrat.hrat_inv @ X0)) @ X0)) @ cHOL4.hrat.hrat_1)))) (Thrat.HRAT_NOZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ X0))))))) (Thrat.HRAT_ADD_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.hrat.hrat_add @ X1) @ X2))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.hrat.hrat_add @ X0) @ X2))))))))))) (Thrat.HRAT_ARCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_sucint @ X1)) @ ((cHOL4.hrat.hrat_add @ X0) @ X2))))))))) (Thrat.HRAT_SUCINT,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.hrat.hrat_sucint @ cHOL4.num.0)) @ cHOL4.hrat.hrat_1)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_sucint @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.hrat.hrat_add @ (cHOL4.hrat.hrat_sucint @ X0)) @ cHOL4.hrat.hrat_1)))))) (Threal.hrat_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.hrat.hrat_add @ X0) @ X2)))))))))) (Threal.isacut,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hreal.isacut @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.hreal.hrat_lt @ X2) @ X1))) @ (X0 @ X2))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X2)))))))))))))) (Threal.cut_of_hrat,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hreal.cut_of_hrat @ X0)) @ (^[X1]: ((cHOL4.hreal.hrat_lt @ X1) @ X0)))))) (Threal.hreal_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.hreal.isacut) @ X0)))) (Threal.hreal_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hreal.hreal @ (cHOL4.hreal.cut @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.hreal.isacut @ X1)) @ ((cHOL4.min.= @ (cHOL4.hreal.cut @ (cHOL4.hreal.hreal @ X1))) @ X1)))))) (Threal.hreal_1,((cHOL4.min.= @ cHOL4.hreal.hreal_1) @ (cHOL4.hreal.hreal @ (cHOL4.hreal.cut_of_hrat @ cHOL4.hrat.hrat_1)))) (Threal.hreal_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ (cHOL4.hreal.hreal @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.hrat.hrat_add @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X3)) @ ((cHOL4.hreal.cut @ X1) @ X4))))))))))))))) (Threal.hreal_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ X0) @ X1)) @ (cHOL4.hreal.hreal @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.hrat.hrat_mul @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X3)) @ ((cHOL4.hreal.cut @ X1) @ X4))))))))))))))) (Threal.hreal_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hreal.hreal_inv @ X0)) @ (cHOL4.hreal.hreal @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X2) @ cHOL4.hrat.hrat_1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.hreal.cut @ X0) @ X3)) @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X1) @ X3)) @ X2))))))))))))) (Threal.hreal_sup,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.hreal.hreal_sup @ X0)) @ (cHOL4.hreal.hreal @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.hreal.cut @ X2) @ X1)))))))))) (Threal.hreal_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.hreal.cut @ X0) @ X2)) @ ((cHOL4.hreal.cut @ X1) @ X2))))))))))) (Threal.hreal_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_sub @ X0) @ X1)) @ (cHOL4.hreal.hreal @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X1) @ X3))) @ ((cHOL4.hreal.cut @ X0) @ ((cHOL4.hrat.hrat_add @ X3) @ X2))))))))))))) (Threal.HRAT_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.hreal.hrat_lt @ X0) @ X0))))) (Threal.HRAT_LT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X2))) @ ((cHOL4.hreal.hrat_lt @ X0) @ X2))))))))) (Threal.HRAT_LT_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X0)))))))) (Threal.HRAT_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X0)))))))) (Threal.HRAT_MUL_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ cHOL4.hrat.hrat_1)) @ X0)))) (Threal.HRAT_MUL_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ (cHOL4.hrat.hrat_inv @ X0))) @ cHOL4.hrat.hrat_1)))) (Threal.HRAT_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ X2)) @ ((cHOL4.hrat.hrat_add @ ((cHOL4.hrat.hrat_mul @ X0) @ X2)) @ ((cHOL4.hrat.hrat_mul @ X1) @ X2)))))))))) (Threal.HRAT_LT_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.hreal.hrat_lt @ X0) @ ((cHOL4.hrat.hrat_add @ X0) @ X1))))))) (Threal.HRAT_LT_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.hreal.hrat_lt @ X1) @ ((cHOL4.hrat.hrat_add @ X0) @ X1))))))) (Threal.HRAT_LT_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.hreal.hrat_lt @ X1) @ X0)))))))) (Threal.HRAT_LT_NE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Threal.HRAT_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ ((cHOL4.hrat.hrat_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Threal.HRAT_EQ_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ ((cHOL4.hrat.hrat_mul @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Threal.HRAT_LT_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X0) @ X2)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X3))) @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_add @ X0) @ X1)) @ ((cHOL4.hrat.hrat_add @ X2) @ X3)))))))))))) (Threal.HRAT_LT_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_add @ X2) @ X0)) @ ((cHOL4.hrat.hrat_add @ X2) @ X1))) @ ((cHOL4.hreal.hrat_lt @ X0) @ X1))))))))) (Threal.HRAT_LT_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_add @ X0) @ X2)) @ ((cHOL4.hrat.hrat_add @ X1) @ X2))) @ ((cHOL4.hreal.hrat_lt @ X0) @ X1))))))))) (Threal.HRAT_LT_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X0) @ X2)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X3))) @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ ((cHOL4.hrat.hrat_mul @ X2) @ X3)))))))))))) (Threal.HRAT_LT_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X2) @ X0)) @ ((cHOL4.hrat.hrat_mul @ X2) @ X1))) @ ((cHOL4.hreal.hrat_lt @ X0) @ X1))))))))) (Threal.HRAT_LT_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X0) @ X2)) @ ((cHOL4.hrat.hrat_mul @ X1) @ X2))) @ ((cHOL4.hreal.hrat_lt @ X0) @ X1))))))))) (Threal.HRAT_LT_LMUL1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ X1)) @ ((cHOL4.hreal.hrat_lt @ X0) @ cHOL4.hrat.hrat_1))))))) (Threal.HRAT_LT_RMUL1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X0) @ X1)) @ X0)) @ ((cHOL4.hreal.hrat_lt @ X1) @ cHOL4.hrat.hrat_1))))))) (Threal.HRAT_GT_LMUL1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ X1) @ ((cHOL4.hrat.hrat_mul @ X0) @ X1))) @ ((cHOL4.hreal.hrat_lt @ cHOL4.hrat.hrat_1) @ X0))))))) (Threal.HRAT_LT_L1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ (cHOL4.hrat.hrat_inv @ X0)) @ X1)) @ cHOL4.hrat.hrat_1)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X0))))))) (Threal.HRAT_LT_R1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X0) @ (cHOL4.hrat.hrat_inv @ X1))) @ cHOL4.hrat.hrat_1)) @ ((cHOL4.hreal.hrat_lt @ X0) @ X1))))))) (Threal.HRAT_GT_L1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hrat_lt @ cHOL4.hrat.hrat_1) @ ((cHOL4.hrat.hrat_mul @ (cHOL4.hrat.hrat_inv @ X0)) @ X1))) @ ((cHOL4.hreal.hrat_lt @ X0) @ X1))))))) (Threal.HRAT_INV_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.hrat.hrat_inv @ ((cHOL4.hrat.hrat_mul @ X0) @ X1))) @ ((cHOL4.hrat.hrat_mul @ (cHOL4.hrat.hrat_inv @ X0)) @ (cHOL4.hrat.hrat_inv @ X1)))))))) (Threal.HRAT_UP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.hreal.hrat_lt @ X0) @ X1)))))) (Threal.HRAT_DOWN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.hreal.hrat_lt @ X1) @ X0)))))) (Threal.HRAT_DOWN2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X2) @ X0)) @ ((cHOL4.hreal.hrat_lt @ X2) @ X1))))))))) (Threal.HRAT_MEAN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hrat_lt @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X0) @ X2)) @ ((cHOL4.hreal.hrat_lt @ X2) @ X1)))))))))) (Threal.ISACUT_HRAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.hreal.isacut @ (cHOL4.hreal.cut_of_hrat @ X0))))) (Threal.EQUAL_CUTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.hreal.cut @ X0)) @ (cHOL4.hreal.cut @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Threal.CUT_ISACUT,(cHOL4.bool.! @ (^[X0]: (cHOL4.hreal.isacut @ (cHOL4.hreal.cut @ X0))))) (Threal.CUT_NONEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.hreal.cut @ X0) @ X1)))))) (Threal.CUT_BOUNDED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ X1))))))) (Threal.CUT_DOWN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X1)) @ ((cHOL4.hreal.hrat_lt @ X2) @ X1))) @ ((cHOL4.hreal.cut @ X0) @ X2))))))))) (Threal.CUT_UP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.cut @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X2)) @ ((cHOL4.hreal.hrat_lt @ X1) @ X2)))))))))) (Threal.CUT_UBOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ X1))) @ ((cHOL4.hreal.hrat_lt @ X1) @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ X2)))))))))) (Threal.CUT_STRADDLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ X2)))) @ ((cHOL4.hreal.hrat_lt @ X1) @ X2))))))))) (Threal.CUT_NEARTOP_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ ((cHOL4.hrat.hrat_add @ X2) @ X1))))))))))) (Threal.CUT_NEARTOP_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hrat_lt @ cHOL4.hrat.hrat_1) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ ((cHOL4.hrat.hrat_mul @ X1) @ X2)))))))))))) (Threal.HREAL_INV_ISACUT,(cHOL4.bool.! @ (^[X0]: (cHOL4.hreal.isacut @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.hreal.hrat_lt @ X2) @ cHOL4.hrat.hrat_1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.hreal.cut @ X0) @ X3)) @ ((cHOL4.hreal.hrat_lt @ ((cHOL4.hrat.hrat_mul @ X1) @ X3)) @ X2)))))))))))) (Threal.HREAL_ADD_ISACUT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.hreal.isacut @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.hrat.hrat_add @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X3)) @ ((cHOL4.hreal.cut @ X1) @ X4)))))))))))))) (Threal.HREAL_MUL_ISACUT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.hreal.isacut @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.hrat.hrat_mul @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.hreal.cut @ X0) @ X3)) @ ((cHOL4.hreal.cut @ X1) @ X4)))))))))))))) (Threal.HREAL_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ ((cHOL4.hreal.hreal_add @ X1) @ X0))))))) (Threal.HREAL_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ X0) @ X1)) @ ((cHOL4.hreal.hreal_mul @ X1) @ X0))))))) (Threal.HREAL_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ ((cHOL4.hreal.hreal_add @ X1) @ X2))) @ ((cHOL4.hreal.hreal_add @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ X2))))))))) (Threal.HREAL_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ X0) @ ((cHOL4.hreal.hreal_mul @ X1) @ X2))) @ ((cHOL4.hreal.hreal_mul @ ((cHOL4.hreal.hreal_mul @ X0) @ X1)) @ X2))))))))) (Threal.HREAL_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ X0) @ ((cHOL4.hreal.hreal_add @ X1) @ X2))) @ ((cHOL4.hreal.hreal_add @ ((cHOL4.hreal.hreal_mul @ X0) @ X1)) @ ((cHOL4.hreal.hreal_mul @ X0) @ X2)))))))))) (Threal.HREAL_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ cHOL4.hreal.hreal_1) @ X0)) @ X0)))) (Threal.HREAL_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ (cHOL4.hreal.hreal_inv @ X0)) @ X0)) @ cHOL4.hreal.hreal_1)))) (Threal.HREAL_NOZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ X0))))))) (Threal.HREAL_LT_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ X2))) @ ((cHOL4.hreal.cut @ X1) @ X2)))))))))) (Threal.HREAL_SUB_ISACUT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ (cHOL4.hreal.isacut @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.hreal.cut @ X0) @ X3))) @ ((cHOL4.hreal.cut @ X1) @ ((cHOL4.hrat.hrat_add @ X3) @ X2))))))))))))) (Threal.HREAL_SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ ((cHOL4.hreal.hreal_sub @ X1) @ X0)) @ X0)) @ X1))))))) (Threal.HREAL_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ ((cHOL4.hreal.hreal_lt @ X1) @ X0)))))))) (Threal.HREAL_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.hreal.hreal_add @ X0) @ X2)))))))))) (Threal.HREAL_ADD_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.hreal.hreal_add @ X0) @ X2))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.hreal.hreal_add @ X1) @ X2))))))))))) (Threal.HREAL_SUP_ISACUT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.hreal.hreal_lt @ X1) @ X2)))))))) @ (cHOL4.hreal.isacut @ (^[X3]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.hreal.cut @ X1) @ X3)))))))))) (Threal.HREAL_SUP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.hreal.hreal_lt @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.hreal.hreal_lt @ X2) @ X1))))) @ ((cHOL4.hreal.hreal_lt @ X2) @ (cHOL4.hreal.hreal_sup @ X0))))))))) (Tieee.expwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ieee.expwidth @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X0)))))) (Tieee.fracwidth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ieee.fracwidth @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X1)))))) (Tieee.wordlength,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.wordlength @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.ieee.expwidth @ X0)) @ (cHOL4.ieee.fracwidth @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tieee.emax,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.emax @ X0)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.expwidth @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tieee.bias,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.bias @ X0)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.expwidth @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tieee.is_single,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.is_single @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.expwidth @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.ieee.wordlength @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tieee.is_double,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.is_double @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.expwidth @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.ieee.wordlength @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tieee.is_single_extended,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.is_single_extended @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.>= @ (cHOL4.ieee.expwidth @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.arithmetic.>= @ (cHOL4.ieee.wordlength @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tieee.is_double_extended,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.is_double_extended @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.>= @ (cHOL4.ieee.expwidth @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.arithmetic.>= @ (cHOL4.ieee.wordlength @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tieee.sign,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ieee.sign @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X0)))))))) (Tieee.exponent,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ieee.exponent @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X1)))))))) (Tieee.fraction,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ieee.fraction @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X2)))))))) (Tieee.is_nan,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_nan @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.exponent @ X1)) @ (cHOL4.ieee.emax @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ieee.fraction @ X1)) @ cHOL4.num.0))))))))) (Tieee.is_infinity,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_infinity @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.exponent @ X1)) @ (cHOL4.ieee.emax @ X0))) @ ((cHOL4.min.= @ (cHOL4.ieee.fraction @ X1)) @ cHOL4.num.0)))))))) (Tieee.is_normal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_normal @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.ieee.exponent @ X1))) @ ((cHOL4.prim_rec.< @ (cHOL4.ieee.exponent @ X1)) @ (cHOL4.ieee.emax @ X0))))))))) (Tieee.is_denormal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_denormal @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.exponent @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ieee.fraction @ X1)) @ cHOL4.num.0))))))))) (Tieee.is_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_zero @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.exponent @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ (cHOL4.ieee.fraction @ X1)) @ cHOL4.num.0)))))))) (Tieee.is_valid,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ieee.is_valid @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.expwidth @ X0)))) @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.fracwidth @ X0))))))))))))))) (Tieee.is_finite,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_finite @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_valid @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_normal @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_denormal @ X0) @ X1)) @ ((cHOL4.ieee.is_zero @ X0) @ X1)))))))))) (Tieee.plus_infinity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.plus_infinity @ X0)) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ (cHOL4.ieee.emax @ X0)) @ cHOL4.num.0)))))) (Tieee.minus_infinity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.minus_infinity @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ (cHOL4.ieee.emax @ X0)) @ cHOL4.num.0)))))) (Tieee.plus_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.plus_zero @ X0)) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ cHOL4.num.0)))))) (Tieee.minus_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.minus_zero @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ cHOL4.num.0)))))) (Tieee.topfloat,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.topfloat @ X0)) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.fracwidth @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tieee.bottomfloat,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.bottomfloat @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.fracwidth @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tieee.minus,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.minus @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.ieee.sign @ X1))) @ ((cHOL4.pair.|comma| @ (cHOL4.ieee.exponent @ X1)) @ (cHOL4.ieee.fraction @ X1))))))))) (Tieee.encoding,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ieee.encoding @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.wordlength @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.arithmetic.* @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.ieee.fracwidth @ X0))))) @ X3))))))))))) (Tieee.valof,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ieee.valof @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.bias @ X0))))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X3)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.fracwidth @ X0))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.bias @ X0))))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X3)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.fracwidth @ X0)))))))))))))))) (Tieee.largest,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.largest @ X0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.bias @ X0)))) @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.fracwidth @ X0))))))))) (Tieee.threshold,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.threshold @ X0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.ieee.emax @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.ieee.bias @ X0)))) @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ (cHOL4.ieee.fracwidth @ X0)))))))))) (Tieee.ulp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.ulp @ X0) @ X1)) @ ((cHOL4.real.real_sub @ ((cHOL4.ieee.valof @ X0) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ (cHOL4.ieee.exponent @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.ieee.valof @ X0) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ (cHOL4.ieee.exponent @ X1)) @ cHOL4.num.0)))))))))) (Tieee.roundmode_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)))) (Tieee.roundmode_BIJ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ (cHOL4.ieee.roundmode2num @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.prim_rec.< @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ (cHOL4.ieee.num2roundmode @ X1))) @ X1)))))) (Tieee.roundmode_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.roundmode_size @ X0)) @ cHOL4.num.0)))) (Tieee.roundmode_CASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.ieee.roundmode_CASE @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((^[X5]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X5) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X5) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X3) @ X4)))) @ (cHOL4.ieee.roundmode2num @ X0)))))))))))))) (Tieee.is_closest,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.is_closest @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X3)) @ X2))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X4)) @ X2))))))))))))))))) (Tieee.closest,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.closest @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.min.|at| @ (^[X4]: ((cHOL4.bool./\ @ ((((cHOL4.ieee.is_closest @ X0) @ X2) @ X3) @ X4)) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((((cHOL4.ieee.is_closest @ X0) @ X2) @ X3) @ X5)) @ (X1 @ X5))))) @ (X1 @ X4))))))))))))))) (Tieee.round_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.round @ X0) @ cHOL4.ieee.To_nearest) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.threshold @ X0)))) @ (cHOL4.ieee.minus_infinity @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_ge @ X1) @ (cHOL4.ieee.threshold @ X0))) @ (cHOL4.ieee.plus_infinity @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X2]: (cHOL4.arithmetic.EVEN @ (cHOL4.ieee.fraction @ X2)))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.ieee.is_finite @ X0) @ X2))))) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.round @ X0) @ cHOL4.ieee.float_To_zero) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.largest @ X0)))) @ (cHOL4.ieee.bottomfloat @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_gt @ X1) @ (cHOL4.ieee.largest @ X0))) @ (cHOL4.ieee.topfloat @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X3]: cHOL4.bool.T)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_finite @ X0) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.ieee.valof @ X0) @ X2))) @ (cHOL4.real.abs @ X1))))))) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.round @ X0) @ cHOL4.ieee.To_pinfinity) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.largest @ X0)))) @ (cHOL4.ieee.bottomfloat @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_gt @ X1) @ (cHOL4.ieee.largest @ X0))) @ (cHOL4.ieee.plus_infinity @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X3]: cHOL4.bool.T)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_finite @ X0) @ X2)) @ ((cHOL4.real.real_ge @ ((cHOL4.ieee.valof @ X0) @ X2)) @ X1)))))) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.round @ X0) @ cHOL4.ieee.To_ninfinity) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.largest @ X0)))) @ (cHOL4.ieee.minus_infinity @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_gt @ X1) @ (cHOL4.ieee.largest @ X0))) @ (cHOL4.ieee.topfloat @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X3]: cHOL4.bool.T)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_finite @ X0) @ X2)) @ ((cHOL4.real.real_lte @ ((cHOL4.ieee.valof @ X0) @ X2)) @ X1)))))) @ X1)))))))))))) (Tieee.is_integral,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_integral @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_finite @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.ieee.valof @ X0) @ X1))) @ (cHOL4.real.real_of_num @ X2))))))))))) (Tieee.intround_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.intround @ X0) @ cHOL4.ieee.To_nearest) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.threshold @ X0)))) @ (cHOL4.ieee.minus_infinity @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_ge @ X1) @ (cHOL4.ieee.threshold @ X0))) @ (cHOL4.ieee.plus_infinity @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X3)) @ ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.ieee.valof @ X0) @ X2))) @ (cHOL4.real.real_of_num @ X3))))))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.ieee.is_integral @ X0) @ X2))))) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.intround @ X0) @ cHOL4.ieee.float_To_zero) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.largest @ X0)))) @ (cHOL4.ieee.bottomfloat @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_gt @ X1) @ (cHOL4.ieee.largest @ X0))) @ (cHOL4.ieee.topfloat @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X4]: cHOL4.bool.T)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_integral @ X0) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.ieee.valof @ X0) @ X2))) @ (cHOL4.real.abs @ X1))))))) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.intround @ X0) @ cHOL4.ieee.To_pinfinity) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.largest @ X0)))) @ (cHOL4.ieee.bottomfloat @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_gt @ X1) @ (cHOL4.ieee.largest @ X0))) @ (cHOL4.ieee.plus_infinity @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X4]: cHOL4.bool.T)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_integral @ X0) @ X2)) @ ((cHOL4.real.real_ge @ ((cHOL4.ieee.valof @ X0) @ X2)) @ X1)))))) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ieee.intround @ X0) @ cHOL4.ieee.To_ninfinity) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_neg @ (cHOL4.ieee.largest @ X0)))) @ (cHOL4.ieee.minus_infinity @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_gt @ X1) @ (cHOL4.ieee.largest @ X0))) @ (cHOL4.ieee.topfloat @ X0)) @ ((((cHOL4.ieee.closest @ (cHOL4.ieee.valof @ X0)) @ (^[X4]: cHOL4.bool.T)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_integral @ X0) @ X2)) @ ((cHOL4.real.real_lte @ ((cHOL4.ieee.valof @ X0) @ X2)) @ X1)))))) @ X1)))))))))))) (Tieee.some_nan,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.some_nan @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.ieee.is_nan @ X0) @ X1))))))) (Tieee.zerosign,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.zerosign @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_zero @ X0) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (cHOL4.ieee.plus_zero @ X0)) @ (cHOL4.ieee.minus_zero @ X0))) @ X2))))))))) (Tieee.rem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.rem @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.real.real_sub @ X0) @ ((cHOL4.realax.real_mul @ X2) @ X1)))) @ ((((cHOL4.ieee.closest @ cHOL4.combin.I) @ (^[X0]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X3)) @ ((cHOL4.min.= @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ X3))))))) @ (cHOL4.pred_set.GSPEC @ (^[X0]: ((cHOL4.pair.|comma| @ X0) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ X3)))))))) @ ((cHOL4.real./ @ X0) @ X1))))))))) (Tieee.fintrnd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fintrnd @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ X2) @ (((cHOL4.ieee.zerosign @ X0) @ (cHOL4.ieee.sign @ X2)) @ (((cHOL4.ieee.intround @ X0) @ X1) @ ((cHOL4.ieee.valof @ X0) @ X2))))))))))))) (Tieee.fadd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.fadd @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3)))))))) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ X2) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X3)) @ X3) @ (((cHOL4.ieee.zerosign @ X0) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_zero @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_zero @ X0) @ X3)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))))) @ (cHOL4.ieee.sign @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.ieee.To_ninfinity)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ (((cHOL4.ieee.round @ X0) @ X1) @ ((cHOL4.realax.real_add @ ((cHOL4.ieee.valof @ X0) @ X2)) @ ((cHOL4.ieee.valof @ X0) @ X3))))))))))))))))) (Tieee.fsub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.fsub @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X3)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))))))) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ X2) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X3)) @ ((cHOL4.ieee.minus @ X0) @ X3)) @ (((cHOL4.ieee.zerosign @ X0) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_zero @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_zero @ X0) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3)))))) @ (cHOL4.ieee.sign @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.ieee.To_ninfinity)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ (((cHOL4.ieee.round @ X0) @ X1) @ ((cHOL4.real.real_sub @ ((cHOL4.ieee.valof @ X0) @ X2)) @ ((cHOL4.ieee.valof @ X0) @ X3))))))))))))))))) (Tieee.fmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.fmul @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X3)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_zero @ X0) @ X2)) @ ((cHOL4.ieee.is_infinity @ X0) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.ieee.is_zero @ X0) @ X3)))))) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.ieee.is_infinity @ X0) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))) @ (cHOL4.ieee.plus_infinity @ X0)) @ (cHOL4.ieee.minus_infinity @ X0))) @ (((cHOL4.ieee.zerosign @ X0) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (((cHOL4.ieee.round @ X0) @ X1) @ ((cHOL4.realax.real_mul @ ((cHOL4.ieee.valof @ X0) @ X2)) @ ((cHOL4.ieee.valof @ X0) @ X3)))))))))))))))) (Tieee.fdiv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.fdiv @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X3)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_zero @ X0) @ X2)) @ ((cHOL4.ieee.is_zero @ X0) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.ieee.is_infinity @ X0) @ X3)))))) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.ieee.is_zero @ X0) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))) @ (cHOL4.ieee.plus_infinity @ X0)) @ (cHOL4.ieee.minus_infinity @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))) @ (cHOL4.ieee.plus_zero @ X0)) @ (cHOL4.ieee.minus_zero @ X0))) @ (((cHOL4.ieee.zerosign @ X0) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.ieee.sign @ X3))) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (((cHOL4.ieee.round @ X0) @ X1) @ ((cHOL4.real./ @ ((cHOL4.ieee.valof @ X0) @ X2)) @ ((cHOL4.ieee.valof @ X0) @ X3))))))))))))))))) (Tieee.fsqrt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fsqrt @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_zero @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ cHOL4.num.0)))) @ X2) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.ieee.zerosign @ X0) @ (cHOL4.ieee.sign @ X2)) @ (((cHOL4.ieee.round @ X0) @ X1) @ (cHOL4.transc.sqrt @ ((cHOL4.ieee.valof @ X0) @ X2))))))))))))))) (Tieee.frem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.ieee.frem @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X3)) @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.ieee.is_zero @ X0) @ X3))))) @ (cHOL4.ieee.some_nan @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.is_infinity @ X0) @ X3)) @ X2) @ (((cHOL4.ieee.zerosign @ X0) @ (cHOL4.ieee.sign @ X2)) @ (((cHOL4.ieee.round @ X0) @ X1) @ ((cHOL4.ieee.rem @ ((cHOL4.ieee.valof @ X0) @ X2)) @ ((cHOL4.ieee.valof @ X0) @ X3)))))))))))))))) (Tieee.fneg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fneg @ X0) @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.ieee.sign @ X2))) @ ((cHOL4.pair.|comma| @ (cHOL4.ieee.exponent @ X2)) @ (cHOL4.ieee.fraction @ X2))))))))))) (Tieee.ccode_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)))) (Tieee.ccode_BIJ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ (cHOL4.ieee.ccode2num @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.prim_rec.< @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ (cHOL4.ieee.num2ccode @ X1))) @ X1)))))) (Tieee.ccode_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.ccode_size @ X0)) @ cHOL4.num.0)))) (Tieee.ccode_CASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.ieee.ccode_CASE @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((^[X5]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X5) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X5) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X3) @ X4)))) @ (cHOL4.ieee.ccode2num @ X0)))))))))))))) (Tieee.fcompare,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.ieee.is_nan @ X0) @ X1)) @ ((cHOL4.ieee.is_nan @ X0) @ X2))) @ cHOL4.ieee.Un) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ieee.Eq) @ cHOL4.ieee.Lt)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X1)) @ cHOL4.num.0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ cHOL4.num.0))) @ cHOL4.ieee.Eq) @ cHOL4.ieee.Gt)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ieee.Gt) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.ieee.is_infinity @ X0) @ X2)) @ ((cHOL4.min.= @ (cHOL4.ieee.sign @ X2)) @ cHOL4.num.0))) @ cHOL4.ieee.Lt) @ (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ ((cHOL4.ieee.valof @ X0) @ X1)) @ ((cHOL4.ieee.valof @ X0) @ X2))) @ cHOL4.ieee.Lt) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.ieee.valof @ X0) @ X1)) @ ((cHOL4.ieee.valof @ X0) @ X2))) @ cHOL4.ieee.Eq) @ cHOL4.ieee.Gt))))))))))))))) (Tieee.flt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.flt @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Lt))))))))) (Tieee.fle,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fle @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Lt)) @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Eq)))))))))) (Tieee.fgt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fgt @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Gt))))))))) (Tieee.fge,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.fge @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Gt)) @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Eq)))))))))) (Tieee.feq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ieee.feq @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.ieee.fcompare @ X0) @ X1) @ X2)) @ cHOL4.ieee.Eq))))))))) (Tieee.float_format,((cHOL4.min.= @ cHOL4.ieee.float_format) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Tieee.float_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (cHOL4.ieee.is_valid @ cHOL4.ieee.float_format)) @ X0)))) (Tieee.float_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.float @ (cHOL4.ieee.defloat @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.is_valid @ cHOL4.ieee.float_format) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.defloat @ (cHOL4.ieee.float @ X1))) @ X1)))))) (Tieee.Val,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Val @ X0)) @ ((cHOL4.ieee.valof @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Float,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Float @ X0)) @ (cHOL4.ieee.float @ (((cHOL4.ieee.round @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ X0)))))) (Tieee.Sign,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Sign @ X0)) @ (cHOL4.ieee.sign @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Exponent,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Exponent @ X0)) @ (cHOL4.ieee.exponent @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Fraction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Fraction @ X0)) @ (cHOL4.ieee.fraction @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Ulp,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Ulp @ X0)) @ ((cHOL4.ieee.ulp @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Isnan,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Isnan @ X0)) @ ((cHOL4.ieee.is_nan @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Infinity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Infinity @ X0)) @ ((cHOL4.ieee.is_infinity @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Isnormal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Isnormal @ X0)) @ ((cHOL4.ieee.is_normal @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Isdenormal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Isdenormal @ X0)) @ ((cHOL4.ieee.is_denormal @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Iszero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Iszero @ X0)) @ ((cHOL4.ieee.is_zero @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Finite,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Finite @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.ieee.Isnormal @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.ieee.Isdenormal @ X0)) @ (cHOL4.ieee.Iszero @ X0))))))) (Tieee.Isintegral,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.Isintegral @ X0)) @ ((cHOL4.ieee.is_integral @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)))))) (Tieee.Plus_zero,((cHOL4.min.= @ cHOL4.ieee.Plus_zero) @ (cHOL4.ieee.float @ (cHOL4.ieee.plus_zero @ cHOL4.ieee.float_format)))) (Tieee.Minus_zero,((cHOL4.min.= @ cHOL4.ieee.Minus_zero) @ (cHOL4.ieee.float @ (cHOL4.ieee.minus_zero @ cHOL4.ieee.float_format)))) (Tieee.Minus_infinity,((cHOL4.min.= @ cHOL4.ieee.Minus_infinity) @ (cHOL4.ieee.float @ (cHOL4.ieee.minus_infinity @ cHOL4.ieee.float_format)))) (Tieee.Plus_infinity,((cHOL4.min.= @ cHOL4.ieee.Plus_infinity) @ (cHOL4.ieee.float @ (cHOL4.ieee.plus_infinity @ cHOL4.ieee.float_format)))) (Tieee.float_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_add @ X0) @ X1)) @ (cHOL4.ieee.float @ ((((cHOL4.ieee.fadd @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1))))))))) (Tieee.float_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_sub @ X0) @ X1)) @ (cHOL4.ieee.float @ ((((cHOL4.ieee.fsub @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1))))))))) (Tieee.float_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_mul @ X0) @ X1)) @ (cHOL4.ieee.float @ ((((cHOL4.ieee.fmul @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1))))))))) (Tieee.float_div,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_div @ X0) @ X1)) @ (cHOL4.ieee.float @ ((((cHOL4.ieee.fdiv @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1))))))))) (Tieee.float_rem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_rem @ X0) @ X1)) @ (cHOL4.ieee.float @ ((((cHOL4.ieee.frem @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1))))))))) (Tieee.float_sqrt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.float_sqrt @ X0)) @ (cHOL4.ieee.float @ (((cHOL4.ieee.fsqrt @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0))))))) (Tieee.ROUNDFLOAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.ROUNDFLOAT @ X0)) @ (cHOL4.ieee.float @ (((cHOL4.ieee.fintrnd @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0))))))) (Tieee.float_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_lt @ X0) @ X1)) @ (((cHOL4.ieee.flt @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1)))))))) (Tieee.float_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_le @ X0) @ X1)) @ (((cHOL4.ieee.fle @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1)))))))) (Tieee.float_gt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_gt @ X0) @ X1)) @ (((cHOL4.ieee.fgt @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1)))))))) (Tieee.float_ge,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_ge @ X0) @ X1)) @ (((cHOL4.ieee.fge @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1)))))))) (Tieee.float_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ieee.float_eq @ X0) @ X1)) @ (((cHOL4.ieee.feq @ cHOL4.ieee.float_format) @ (cHOL4.ieee.defloat @ X0)) @ (cHOL4.ieee.defloat @ X1)))))))) (Tieee.float_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.float_neg @ X0)) @ (cHOL4.ieee.float @ (((cHOL4.ieee.fneg @ cHOL4.ieee.float_format) @ cHOL4.ieee.To_nearest) @ (cHOL4.ieee.defloat @ X0))))))) (Tieee.float_abs,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.float_abs @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.ieee.float_ge @ X0) @ cHOL4.ieee.Plus_zero)) @ X0) @ (cHOL4.ieee.float_neg @ X0)))))) (Tieee.num2roundmode_roundmode2num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ (cHOL4.ieee.roundmode2num @ X0))) @ X0)))) (Tieee.roundmode2num_num2roundmode,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ (cHOL4.ieee.num2roundmode @ X0))) @ X0))))) (Tieee.num2roundmode_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ X0)) @ (cHOL4.ieee.num2roundmode @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tieee.roundmode2num_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ X0)) @ (cHOL4.ieee.roundmode2num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tieee.num2roundmode_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.ieee.num2roundmode @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tieee.roundmode2num_ONTO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.ieee.roundmode2num @ X1)))))))) (Tieee.num2roundmode_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ cHOL4.num.0)) @ cHOL4.ieee.To_nearest)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.ieee.float_To_zero)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.ieee.To_pinfinity)) @ ((cHOL4.min.= @ (cHOL4.ieee.num2roundmode @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ieee.To_ninfinity))))) (Tieee.roundmode2num_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ cHOL4.ieee.To_nearest)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ cHOL4.ieee.float_To_zero)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ cHOL4.ieee.To_pinfinity)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ cHOL4.ieee.To_ninfinity)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tieee.roundmode_EQ_roundmode,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.roundmode2num @ X0)) @ (cHOL4.ieee.roundmode2num @ X1)))))))) (Tieee.roundmode_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.roundmode_CASE @ cHOL4.ieee.To_nearest) @ X0) @ X1) @ X2) @ X3)) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.roundmode_CASE @ cHOL4.ieee.float_To_zero) @ X0) @ X1) @ X2) @ X3)) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.roundmode_CASE @ cHOL4.ieee.To_pinfinity) @ X0) @ X1) @ X2) @ X3)) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.roundmode_CASE @ cHOL4.ieee.To_ninfinity) @ X0) @ X1) @ X2) @ X3)) @ X3))))))))))))) (Tieee.datatype_roundmode,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((((X0 @ cHOL4.ieee.To_nearest) @ cHOL4.ieee.float_To_zero) @ cHOL4.ieee.To_pinfinity) @ cHOL4.ieee.To_ninfinity))))) (Tieee.roundmode_distinct,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.To_nearest) @ cHOL4.ieee.float_To_zero))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.To_nearest) @ cHOL4.ieee.To_pinfinity))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.To_nearest) @ cHOL4.ieee.To_ninfinity))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.float_To_zero) @ cHOL4.ieee.To_pinfinity))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.float_To_zero) @ cHOL4.ieee.To_ninfinity))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.To_pinfinity) @ cHOL4.ieee.To_ninfinity)))))))) (Tieee.roundmode_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.To_nearest)) @ ((cHOL4.min.= @ X6) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.float_To_zero)) @ ((cHOL4.min.= @ X7) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.To_pinfinity)) @ ((cHOL4.min.= @ X8) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.To_ninfinity)) @ ((cHOL4.min.= @ X9) @ X0))))))) @ ((cHOL4.min.= @ (((((cHOL4.ieee.roundmode_CASE @ X4) @ X6) @ X7) @ X8) @ X9)) @ (((((cHOL4.ieee.roundmode_CASE @ X5) @ X3) @ X2) @ X1) @ X0)))))))))))))))))))))))) (Tieee.roundmode_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.To_nearest)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.float_To_zero)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.To_pinfinity)) @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.To_ninfinity))))))) (Tieee.roundmode_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.To_nearest)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.float_To_zero)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.To_pinfinity)) @ X2)) @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.To_ninfinity)) @ X3))))))))))))))) (Tieee.roundmode_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ieee.To_nearest)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ieee.To_ninfinity)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ieee.To_pinfinity)) @ (X0 @ cHOL4.ieee.float_To_zero))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tieee.num2ccode_ccode2num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ (cHOL4.ieee.ccode2num @ X0))) @ X0)))) (Tieee.ccode2num_num2ccode,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ (cHOL4.ieee.num2ccode @ X0))) @ X0))))) (Tieee.num2ccode_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ X0)) @ (cHOL4.ieee.num2ccode @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tieee.ccode2num_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ X0)) @ (cHOL4.ieee.ccode2num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tieee.num2ccode_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.ieee.num2ccode @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tieee.ccode2num_ONTO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.ieee.ccode2num @ X1)))))))) (Tieee.num2ccode_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ cHOL4.num.0)) @ cHOL4.ieee.Gt)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.ieee.Lt)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.ieee.Eq)) @ ((cHOL4.min.= @ (cHOL4.ieee.num2ccode @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ieee.Un))))) (Tieee.ccode2num_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ cHOL4.ieee.Gt)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ cHOL4.ieee.Lt)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ cHOL4.ieee.Eq)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ cHOL4.ieee.Un)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tieee.ccode_EQ_ccode,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.ieee.ccode2num @ X0)) @ (cHOL4.ieee.ccode2num @ X1)))))))) (Tieee.ccode_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.ccode_CASE @ cHOL4.ieee.Gt) @ X0) @ X1) @ X2) @ X3)) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.ccode_CASE @ cHOL4.ieee.Lt) @ X0) @ X1) @ X2) @ X3)) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.ccode_CASE @ cHOL4.ieee.Eq) @ X0) @ X1) @ X2) @ X3)) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.ieee.ccode_CASE @ cHOL4.ieee.Un) @ X0) @ X1) @ X2) @ X3)) @ X3))))))))))))) (Tieee.datatype_ccode,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((((X0 @ cHOL4.ieee.Gt) @ cHOL4.ieee.Lt) @ cHOL4.ieee.Eq) @ cHOL4.ieee.Un))))) (Tieee.ccode_distinct,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.Gt) @ cHOL4.ieee.Lt))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.Gt) @ cHOL4.ieee.Eq))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.Gt) @ cHOL4.ieee.Un))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.Lt) @ cHOL4.ieee.Eq))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.Lt) @ cHOL4.ieee.Un))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.ieee.Eq) @ cHOL4.ieee.Un)))))))) (Tieee.ccode_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.Gt)) @ ((cHOL4.min.= @ X6) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.Lt)) @ ((cHOL4.min.= @ X7) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.Eq)) @ ((cHOL4.min.= @ X8) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ cHOL4.ieee.Un)) @ ((cHOL4.min.= @ X9) @ X0))))))) @ ((cHOL4.min.= @ (((((cHOL4.ieee.ccode_CASE @ X4) @ X6) @ X7) @ X8) @ X9)) @ (((((cHOL4.ieee.ccode_CASE @ X5) @ X3) @ X2) @ X1) @ X0)))))))))))))))))))))))) (Tieee.ccode_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.Gt)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.Lt)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.Eq)) @ ((cHOL4.min.= @ X0) @ cHOL4.ieee.Un))))))) (Tieee.ccode_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.Gt)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.Lt)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.Eq)) @ X2)) @ ((cHOL4.min.= @ (X4 @ cHOL4.ieee.Un)) @ X3))))))))))))))) (Tieee.ccode_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ieee.Eq)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ieee.Gt)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ieee.Lt)) @ (X0 @ cHOL4.ieee.Un))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tind_type.NUMPAIR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ind_type.NUMPAIR @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tind_type.NUMPAIR_DEST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ind_type.NUMFST @ ((cHOL4.ind_type.NUMPAIR @ X0) @ X1))) @ X0)) @ ((cHOL4.min.= @ (cHOL4.ind_type.NUMSND @ ((cHOL4.ind_type.NUMPAIR @ X0) @ X1))) @ X1))))))) (Tind_type.NUMSUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ind_type.NUMSUM @ X0) @ X1)) @ (((cHOL4.bool.COND @ X0) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))) (Tind_type.NUMSUM_DEST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ind_type.NUMLEFT @ ((cHOL4.ind_type.NUMSUM @ X0) @ X1))) @ X0)) @ ((cHOL4.min.= @ (cHOL4.ind_type.NUMRIGHT @ ((cHOL4.ind_type.NUMSUM @ X0) @ X1))) @ X1))))))) (Tind_type.INJN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ind_type.INJN @ X0)) @ (^[X1]: (^[X2]: ((cHOL4.min.= @ X1) @ X0))))))) (Tind_type.INJA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ind_type.INJA @ X0)) @ (^[X1]: (^[X2]: ((cHOL4.min.= @ X2) @ X0))))))) (Tind_type.INJF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ind_type.INJF @ X0)) @ (^[X1]: ((X0 @ (cHOL4.ind_type.NUMFST @ X1)) @ (cHOL4.ind_type.NUMSND @ X1))))))) (Tind_type.INJP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ind_type.INJP @ X0) @ X1)) @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ (cHOL4.ind_type.NUMLEFT @ X2)) @ ((X0 @ (cHOL4.ind_type.NUMRIGHT @ X2)) @ X3)) @ ((X1 @ (cHOL4.ind_type.NUMRIGHT @ X2)) @ X3)))))))))) (Tind_type.ZCONSTR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ind_type.ZCONSTR @ X0) @ X1) @ X2)) @ ((cHOL4.ind_type.INJP @ (cHOL4.ind_type.INJN @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.ind_type.INJP @ (cHOL4.ind_type.INJA @ X1)) @ (cHOL4.ind_type.INJF @ X2))))))))))) (Tind_type.ZBOT,((cHOL4.min.= @ cHOL4.ind_type.ZBOT) @ ((cHOL4.ind_type.INJP @ (cHOL4.ind_type.INJN @ cHOL4.num.0)) @ (cHOL4.min.|at| @ (^[X0]: cHOL4.bool.T))))) (Tind_type.ZRECSPACE_def,((cHOL4.min.= @ cHOL4.ind_type.ZRECSPACE) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ind_type.ZBOT)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (((cHOL4.ind_type.ZCONSTR @ X2) @ X3) @ X4))) @ (cHOL4.bool.! @ (^[X5]: (X1 @ (X4 @ X5))))))))))))) @ (X1 @ X0))))) @ (X1 @ X0))))))) (Tind_type.recspace_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.ind_type.ZRECSPACE) @ X0)))) (Tind_type.recspace_repfns,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ind_type.mk_rec @ (cHOL4.ind_type.dest_rec @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ind_type.ZRECSPACE @ X1)) @ ((cHOL4.min.= @ (cHOL4.ind_type.dest_rec @ (cHOL4.ind_type.mk_rec @ X1))) @ X1)))))) (Tind_type.BOTTOM,((cHOL4.min.= @ cHOL4.ind_type.BOTTOM) @ (cHOL4.ind_type.mk_rec @ cHOL4.ind_type.ZBOT))) (Tind_type.CONSTR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ind_type.CONSTR @ X0) @ X1) @ X2)) @ (cHOL4.ind_type.mk_rec @ (((cHOL4.ind_type.ZCONSTR @ X0) @ X1) @ (^[X3]: (cHOL4.ind_type.dest_rec @ (X2 @ X3))))))))))))) (Tind_type.FCONS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ind_type.FCONS @ X0) @ X1) @ cHOL4.num.0)) @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ind_type.FCONS @ X0) @ X1) @ (cHOL4.num.SUC @ X2))) @ (X1 @ X2)))))))))) (Tind_type.FNIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ind_type.FNIL @ X0)) @ cHOL4.bool.ARB)))) (Tind_type.ISO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ind_type.ISO @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ (X1 @ X2))) @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ (X0 @ X3))) @ X3)))))))))) (Tind_type.INJ_INVERSE2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((X0 @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.min.= @ X2) @ X4)))))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X5 @ ((X0 @ X7) @ X8))) @ X7)) @ ((cHOL4.min.= @ (X6 @ ((X0 @ X7) @ X8))) @ X8)))))))))))))) (Tind_type.NUMPAIR_INJ_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.ind_type.NUMPAIR @ X0) @ X1)) @ ((cHOL4.ind_type.NUMPAIR @ X2) @ X3))) @ ((cHOL4.min.= @ X0) @ X2))))))))))) (Tind_type.NUMPAIR_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.ind_type.NUMPAIR @ X0) @ X1)) @ ((cHOL4.ind_type.NUMPAIR @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tind_type.NUMSUM_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.ind_type.NUMSUM @ X0) @ X1)) @ ((cHOL4.ind_type.NUMSUM @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tind_type.INJN_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ind_type.INJN @ X0)) @ (cHOL4.ind_type.INJN @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tind_type.INJA_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ind_type.INJA @ X0)) @ (cHOL4.ind_type.INJA @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tind_type.INJF_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ind_type.INJF @ X0)) @ (cHOL4.ind_type.INJF @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tind_type.INJP_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.ind_type.INJP @ X0) @ X2)) @ ((cHOL4.ind_type.INJP @ X1) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X2) @ X3)))))))))))) (Tind_type.ZCONSTR_ZBOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.ind_type.ZCONSTR @ X0) @ X1) @ X2)) @ cHOL4.ind_type.ZBOT))))))))) (Tind_type.ZRECSPACE_rules,((cHOL4.bool./\ @ (cHOL4.ind_type.ZRECSPACE @ cHOL4.ind_type.ZBOT)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.ind_type.ZRECSPACE @ (X2 @ X3))))) @ (cHOL4.ind_type.ZRECSPACE @ (((cHOL4.ind_type.ZCONSTR @ X0) @ X1) @ X2))))))))))) (Tind_type.ZRECSPACE_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ind_type.ZBOT)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (X0 @ (X3 @ X4))))) @ (X0 @ (((cHOL4.ind_type.ZCONSTR @ X1) @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.ind_type.ZRECSPACE @ X5)) @ (X0 @ X5)))))))) (Tind_type.ZRECSPACE_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ind_type.ZBOT)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.ind_type.ZRECSPACE @ (X3 @ X4))) @ (X0 @ (X3 @ X4)))))) @ (X0 @ (((cHOL4.ind_type.ZCONSTR @ X1) @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.ind_type.ZRECSPACE @ X5)) @ (X0 @ X5)))))))) (Tind_type.ZRECSPACE_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ind_type.ZRECSPACE @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.ind_type.ZBOT)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (((cHOL4.ind_type.ZCONSTR @ X1) @ X2) @ X3))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.ind_type.ZRECSPACE @ (X3 @ X4)))))))))))))))) (Tind_type.MK_REC_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.ind_type.mk_rec @ X0)) @ (cHOL4.ind_type.mk_rec @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.ind_type.ZRECSPACE @ X0)) @ (cHOL4.ind_type.ZRECSPACE @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tind_type.DEST_REC_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ind_type.dest_rec @ X0)) @ (cHOL4.ind_type.dest_rec @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tind_type.CONSTR_BOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.ind_type.CONSTR @ X0) @ X1) @ X2)) @ cHOL4.ind_type.BOTTOM))))))))) (Tind_type.CONSTR_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.ind_type.CONSTR @ X0) @ X1) @ X2)) @ (((cHOL4.ind_type.CONSTR @ X3) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X4)) @ ((cHOL4.min.= @ X2) @ X5))))))))))))))))) (Tind_type.CONSTR_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.ind_type.BOTTOM)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (X0 @ (X3 @ X4))))) @ (X0 @ (((cHOL4.ind_type.CONSTR @ X1) @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X5]: (X0 @ X5))))))) (Tind_type.CONSTR_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X1 @ (((cHOL4.ind_type.CONSTR @ X2) @ X3) @ X4))) @ ((((X0 @ X2) @ X3) @ X4) @ (^[X5]: (X1 @ (X4 @ X5)))))))))))))))) (Tind_type.FCONS_DEST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ind_type.FCONS @ X2) @ X1) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ X2) @ (X1 @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tind_type.ISO_REFL,((cHOL4.ind_type.ISO @ (^[X0]: X0)) @ (^[X0]: X0))) (Tind_type.ISO_FUN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.ind_type.ISO @ X3) @ X2)) @ ((cHOL4.ind_type.ISO @ X1) @ X0))) @ ((cHOL4.ind_type.ISO @ (^[X4]: (^[X5]: (X1 @ (X4 @ (X2 @ X5)))))) @ (^[X6]: (^[X7]: (X0 @ (X6 @ (X3 @ X7)))))))))))))))) (Tind_type.ISO_USAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.ind_type.ISO @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X3]: (X2 @ X3)))) @ (cHOL4.bool.! @ (^[X4]: (X2 @ (X0 @ X4)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X3]: (X2 @ X3)))) @ (cHOL4.bool.? @ (^[X4]: (X2 @ (X0 @ X4)))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ X5) @ (X0 @ X6))) @ ((cHOL4.min.= @ (X1 @ X5)) @ X6)))))))))))))) (Tinftree.is_tree_def,((cHOL4.min.= @ cHOL4.inftree.is_tree) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ (^[X3]: (cHOL4.sum.INL @ X2)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X5)) @ ((X4 @ (cHOL4.list.HD @ X3)) @ (cHOL4.list.TL @ X3)))))) @ (cHOL4.bool.! @ (^[X6]: (X1 @ (X4 @ X6))))))))))) @ (X1 @ X0))))) @ (X1 @ X0))))))) (Tinftree.inftree_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.inftree.is_tree) @ X0)))) (Tinftree.inftree_bijections,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.inftree.to_inftree @ (cHOL4.inftree.from_inftree @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.inftree.is_tree @ X1)) @ ((cHOL4.min.= @ (cHOL4.inftree.from_inftree @ (cHOL4.inftree.to_inftree @ X1))) @ X1)))))) (Tinftree.iLf_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.inftree.iLf @ X0)) @ (cHOL4.inftree.to_inftree @ (^[X1]: (cHOL4.sum.INL @ X0))))))) (Tinftree.iNd_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.inftree.iNd @ X0) @ X1)) @ (cHOL4.inftree.to_inftree @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X0)) @ ((cHOL4.inftree.from_inftree @ (X1 @ (cHOL4.list.HD @ X2))) @ (cHOL4.list.TL @ X2))))))))))) (Tinftree.relrec_def,((cHOL4.min.= @ cHOL4.inftree.relrec) @ (^[X0]: (^[X1]: (^[X2]: (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.inftree.iLf @ X5))) @ ((cHOL4.min.= @ X3) @ (X0 @ X5)))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.inftree.iNd @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((X1 @ X6) @ X8))) @ (cHOL4.bool.! @ (^[X9]: ((((X4 @ X0) @ X1) @ (X7 @ X9)) @ (X8 @ X9)))))))))))))) @ ((((X4 @ X0) @ X1) @ X2) @ X3))))))))))) @ ((((X4 @ X0) @ X1) @ X2) @ X3)))))))))) (Tinftree.inftree_rec_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.inftree.inftree_rec @ X0) @ X1) @ X2)) @ (cHOL4.min.|at| @ (^[X3]: ((((cHOL4.inftree.relrec @ X0) @ X1) @ X2) @ X3))))))))))) (Tinftree.inftree_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.inftree.inftree_CASE @ (cHOL4.inftree.iLf @ X0)) @ X1) @ X2)) @ (X1 @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.inftree.inftree_CASE @ ((cHOL4.inftree.iNd @ X3) @ X4)) @ X1) @ X2)) @ ((X2 @ X3) @ X4)))))))))))) (Tinftree.is_tree_rules,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.inftree.is_tree @ (^[X1]: (cHOL4.sum.INL @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (cHOL4.inftree.is_tree @ (X2 @ X4))))) @ (cHOL4.inftree.is_tree @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X3)) @ ((X2 @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))))))))))) (Tinftree.is_tree_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (^[X2]: (cHOL4.sum.INL @ X1)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X5]: (X0 @ (X3 @ X5))))) @ (X0 @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X4)) @ ((X3 @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.inftree.is_tree @ X6)) @ (X0 @ X6)))))))) (Tinftree.is_tree_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (^[X2]: (cHOL4.sum.INL @ X1)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ (cHOL4.inftree.is_tree @ (X3 @ X5))) @ (X0 @ (X3 @ X5)))))) @ (X0 @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X4)) @ ((X3 @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.inftree.is_tree @ X6)) @ (X0 @ X6)))))))) (Tinftree.is_tree_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.inftree.is_tree @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (^[X2]: (cHOL4.sum.INL @ X1)))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X4)) @ ((X3 @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2)))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.inftree.is_tree @ (X3 @ X5)))))))))))))) (Tinftree.iNd_is_tree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.inftree.is_tree @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ (cHOL4.sum.INR @ X0)) @ ((cHOL4.inftree.from_inftree @ (X1 @ (cHOL4.list.HD @ X2))) @ (cHOL4.list.TL @ X2)))))))))) (Tinftree.inftree_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.inftree.iLf @ X5)) @ (cHOL4.inftree.iLf @ X4))) @ ((cHOL4.min.= @ X5) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.inftree.iNd @ X3) @ X1)) @ ((cHOL4.inftree.iNd @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.min.= @ X1) @ X0))))))))))))))))) (Tinftree.inftree_distinct,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.inftree.iLf @ X2)) @ ((cHOL4.inftree.iNd @ X1) @ X0)))))))))) (Tinftree.inftree_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.inftree.iLf @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (X0 @ (X3 @ X4))))) @ (X0 @ ((cHOL4.inftree.iNd @ X2) @ X3))))))))) @ (cHOL4.bool.! @ (^[X5]: (X0 @ X5))))))) (Tinftree.relrec_rules,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((((cHOL4.inftree.relrec @ X0) @ X1) @ (cHOL4.inftree.iLf @ X2)) @ (X0 @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X6]: ((((cHOL4.inftree.relrec @ X0) @ X1) @ (X4 @ X6)) @ (X5 @ X6))))) @ ((((cHOL4.inftree.relrec @ X0) @ X1) @ ((cHOL4.inftree.iNd @ X3) @ X4)) @ ((X1 @ X3) @ X5))))))))))))))) (Tinftree.relrec_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ X2) @ (cHOL4.inftree.iLf @ X3)) @ (X1 @ X3))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X7]: ((((X0 @ X1) @ X2) @ (X5 @ X7)) @ (X6 @ X7))))) @ ((((X0 @ X1) @ X2) @ ((cHOL4.inftree.iNd @ X4) @ X5)) @ ((X2 @ X4) @ X6))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((((cHOL4.inftree.relrec @ X8) @ X9) @ X10) @ X11)) @ ((((X0 @ X8) @ X9) @ X10) @ X11)))))))))))))) (Tinftree.relrec_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((((X0 @ X1) @ X2) @ (cHOL4.inftree.iLf @ X3)) @ (X1 @ X3))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.bool./\ @ ((((cHOL4.inftree.relrec @ X1) @ X2) @ (X5 @ X7)) @ (X6 @ X7))) @ ((((X0 @ X1) @ X2) @ (X5 @ X7)) @ (X6 @ X7)))))) @ ((((X0 @ X1) @ X2) @ ((cHOL4.inftree.iNd @ X4) @ X5)) @ ((X2 @ X4) @ X6))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((((cHOL4.inftree.relrec @ X8) @ X9) @ X10) @ X11)) @ ((((X0 @ X8) @ X9) @ X10) @ X11)))))))))))))) (Tinftree.relrec_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.inftree.relrec @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.inftree.iLf @ X4))) @ ((cHOL4.min.= @ X3) @ (X0 @ X4)))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.inftree.iNd @ X5) @ X6))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((X1 @ X5) @ X7))) @ (cHOL4.bool.! @ (^[X8]: ((((cHOL4.inftree.relrec @ X0) @ X1) @ (X6 @ X8)) @ (X7 @ X8))))))))))))))))))))))) (Tinftree.inftree_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.inftree.iLf @ X3))) @ (X0 @ X3))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (X2 @ ((cHOL4.inftree.iNd @ X4) @ X5))) @ (((X1 @ X4) @ X5) @ ((cHOL4.combin.o @ X2) @ X5))))))))))))))) (Tinftree.inftree_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.inftree.iLf @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ ((cHOL4.inftree.iNd @ X2) @ X3)))))))))) (Tint_arith.bmarker_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.int_arith.bmarker @ X0)) @ X0)))) (Tint_arith.not_less,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X1) @ X0))) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tint_arith.elim_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tint_arith.less_to_leq_samel,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X0) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tint_arith.less_to_leq_samer,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))))))) (Tint_arith.lt_move_all_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_neg @ X0))))))))) (Tint_arith.lt_move_all_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tint_arith.lt_move_left_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1))) @ X2))))))))) (Tint_arith.lt_move_left_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_add @ X2) @ (cHOL4.integer.int_neg @ X0))))))))))) (Tint_arith.le_move_right_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X2))) @ X1))))))))) (Tint_arith.le_move_all_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_neg @ X0))))))))) (Tint_arith.eq_move_all_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_neg @ X0))))))))) (Tint_arith.eq_move_all_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tint_arith.eq_move_left_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1))) @ X2))))))))) (Tint_arith.eq_move_left_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ X2) @ (cHOL4.integer.int_neg @ X0))))))))))) (Tint_arith.eq_move_right_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X2))) @ X1))))))))) (Tint_arith.lcm_eliminate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X0 @ ((cHOL4.integer.int_mul @ X1) @ X2))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.integer.int_divides @ X1) @ X2)))))))))) (Tint_arith.lt_justify_multiplication,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ X2)) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))))))))))) (Tint_arith.eq_justify_multiplication,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))))))))))) (Tint_arith.justify_divides,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X1) @ X2)) @ ((cHOL4.integer.int_divides @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))))))))))) (Tint_arith.justify_divides2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X3)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X3)) @ X1))) @ ((cHOL4.integer.int_divides @ X0) @ X1)))))))))))) (Tint_arith.justify_divides3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ X2))) @ ((cHOL4.integer.int_divides @ X0) @ X2))))))))) (Tint_arith.INT_SUB_SUB3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X0) @ X2)) @ X1))))))))) (Tint_arith.move_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_sub @ X2) @ X0)) @ X1)) @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0))))))))) (Tint_arith.can_get_small,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_sub @ X1) @ ((cHOL4.integer.int_mul @ X3) @ X2))) @ X0)))))))))))) (Tint_arith.can_get_big,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_mul @ X3) @ X2)))))))))))))) (Tint_arith.positive_product_implication,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mul @ X0) @ X1)))))))) (Tint_arith.restricted_quantification_simp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X2)) @ ((cHOL4.integer.int_le @ X2) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X2)) @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_sub @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tint_arith.top_and_lessers,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (X0 @ ((cHOL4.integer.int_sub @ X3) @ X1)))))) @ (X0 @ X2))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ (X0 @ ((cHOL4.integer.int_sub @ X2) @ ((cHOL4.integer.int_mul @ X4) @ X1)))))))))))))) (Tint_arith.bot_and_greaters,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (X0 @ ((cHOL4.integer.int_add @ X3) @ X1)))))) @ (X0 @ X2))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ (X0 @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_mul @ X4) @ X1)))))))))))))) (Tint_arith.in_additive_range,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X2)) @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_add @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ X0) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_le @ X3) @ X1))))))))))))) (Tint_arith.in_subtractive_range,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_lt @ X2) @ X0))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_sub @ X0) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_le @ X3) @ X1))))))))))))) (Tint_arith.subtract_to_small,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ X2) @ X1)))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ X2) @ X1))) @ X1)))))))))) (Tint_arith.add_to_great,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ X2) @ X1)))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ ((cHOL4.integer.int_mul @ X2) @ X1))) @ X1)))))))))) (Tint_arith.INT_LT_ADD_NUMERAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))))))))))) (Tint_arith.INT_NUM_FORALL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.integer.int_of_num @ X1))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (X0 @ X2)))))))) (Tint_arith.INT_NUM_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ (cHOL4.integer.int_of_num @ X1))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (X0 @ X2)))))))) (Tint_arith.INT_NUM_UEXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.?! @ (^[X1]: (X0 @ (cHOL4.integer.int_of_num @ X1))))) @ (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (X0 @ X2)))))))) (Tint_arith.INT_NUM_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))))))))) (Tint_arith.INT_NUM_COND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (((cHOL4.bool.COND @ X0) @ X1) @ X2))) @ (((cHOL4.bool.COND @ X0) @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X2)))))))))) (Tint_arith.INT_NUM_ODD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.integer.int_of_num @ X0))))))) (Tint_arith.INT_NUM_EVEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.integer.int_of_num @ X0)))))) (Tint_arith.HO_SUB_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X1) @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_of_num @ X1))) @ (X0 @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X2))) @ (X0 @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))))) (Tint_arith.CONJ_EQ_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (X0 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (X0 @ X2)))))))))) (Tint_arith.elim_neg_ones,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tint_arith.elim_minus_ones,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tint_arith.INT_NUM_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.divides.divides @ X0) @ X1))))))) (Tint_arith.INT_LINEAR_GCD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.integer.int_mul @ X3) @ (cHOL4.integer.int_of_num @ X1)))) @ (cHOL4.integer.int_of_num @ ((cHOL4.gcd.gcd @ X0) @ X1)))))))))))) (Tint_arith.INT_DIVIDES_LRMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X2) @ X1))) @ ((cHOL4.integer.int_divides @ X0) @ X2)))))))))) (Tint_arith.INT_DIVIDES_RELPRIME_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ X2))) @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ X2)))))))))) (Tint_arith.gcdthm2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ ((cHOL4.gcd.gcd @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X4)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X5) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.integer.int_mul @ X6) @ (cHOL4.integer.int_of_num @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ X2)) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X4)) @ X3)) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X5)) @ ((cHOL4.integer.int_div @ X3) @ (cHOL4.integer.int_of_num @ X4)))) @ ((cHOL4.integer.int_mul @ X7) @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X4))))))))))))))))))))))))) (Tint_arith.gcd1thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.integer.int_mul @ X3) @ (cHOL4.integer.int_of_num @ X1)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.gcd.gcd @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tint_arith.gcd21_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X4) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.integer.int_mul @ X5) @ (cHOL4.integer.int_of_num @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ X2)) @ X3))) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X2) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X4)) @ X3)) @ ((cHOL4.integer.int_mul @ X6) @ (cHOL4.integer.int_of_num @ X0))))))))))))))))))))) (Tint_arith.elim_lt_coeffs1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ X0)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ X2))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ X2)))))))))) (Tint_arith.elim_lt_coeffs2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ X2)) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.integer.int_lt @ X2) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tint_arith.elim_le_coeffs,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_div @ X1) @ X0)))))))))))) (Tint_arith.elim_eq_coeffs,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ X2)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_div @ X2) @ (cHOL4.integer.int_of_num @ X0))))))))))))) (Tint_arith.cooper_lemma_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X9) @ ((cHOL4.gcd.gcd @ ((cHOL4.arithmetic.* @ X4) @ X0)) @ ((cHOL4.arithmetic.* @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X9)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ X6) @ (cHOL4.integer.int_of_num @ X4))) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ X7) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ cHOL4.num.0)))))))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X8)) @ X3))) @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X1)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X4)) @ X8)) @ X5)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X9)) @ X8)) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ X5) @ (cHOL4.integer.int_of_num @ X0))) @ X6))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ X3) @ (cHOL4.integer.int_of_num @ X1))) @ X7)))) @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X9)) @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X5)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X4)) @ X3))))))))))))))))))))))))))) (Tint_arith.bmarker_rewrites,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ (cHOL4.int_arith.bmarker @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.int_arith.bmarker @ X0)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X1) @ ((cHOL4.bool./\ @ (cHOL4.int_arith.bmarker @ X0)) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.int_arith.bmarker @ X0)) @ ((cHOL4.bool./\ @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.int_arith.bmarker @ X0)) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.int_arith.bmarker @ X0)) @ ((cHOL4.bool./\ @ X1) @ X2)))))))))))) (Tint_arith.NOT_INT_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.integer.int_divides @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_add @ X1) @ X2))))))))))))) (Tint_arith.NOT_INT_DIVIDES_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ X0)) @ ((cHOL4.integer.int_add @ X1) @ X2)))))))))))) (Tint_arith.le_context_rwt1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X0))) @ cHOL4.bool.T)))))))))) (Tint_arith.le_context_rwt2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X2)) @ X0))) @ cHOL4.bool.F)))))))))) (Tint_arith.le_context_rwt3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X0))) @ cHOL4.bool.F)))))))))) (Tint_arith.le_context_rwt4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X2)) @ X0))) @ cHOL4.bool.F)))))))))) (Tint_arith.le_context_rwt5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X1)) @ (cHOL4.integer.int_neg @ X0)))) @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X1) @ X0))))))))) (Tint_arith.eq_context_rwt1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X0))) @ ((cHOL4.integer.int_le @ X1) @ X0)))))))))) (Tint_arith.eq_context_rwt2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X2)) @ X0))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ X1)) @ X0)))))))))) (Tinteger_word.toString_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.toString @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.CONS @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ cHOL4.list.NIL)) @ (cHOL4.ASCIInumbers.num_to_dec_string @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))))) @ (cHOL4.ASCIInumbers.num_to_dec_string @ (cHOL4.integer.Num @ X0))))))) (Tinteger_word.fromString_primitive_def,((cHOL4.min.= @ cHOL4.integer_word.fromString) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: (((cHOL4.list.list_CASE @ X2) @ (cHOL4.combin.I @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ cHOL4.list.NIL)))) @ (^[X3]: (^[X4]: ((cHOL4.bool.literal_case @ (^[X5]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.combin.I @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ X4))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (cHOL4.combin.I @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ X4))))) @ (cHOL4.combin.I @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ ((cHOL4.list.CONS @ X5) @ X4)))))))) @ X3))))))))) (Tinteger_word.i2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))))) @ (cHOL4.words.n2w @ (cHOL4.integer.Num @ X0))))))) (Tinteger_word.w2i_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ (cHOL4.words.word_2comp @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X0))))))) (Tinteger_word.UINT_MAX_def,((cHOL4.min.= @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value)) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.INT_MAX_def,((cHOL4.min.= @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.INT_MIN_def,((cHOL4.min.= @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_neg @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.saturate_i2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_i2w @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value)) @ X0)) @ cHOL4.words.word_T) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.n2w @ (cHOL4.integer.Num @ X0)))))))) (Tinteger_word.saturate_i2sw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_i2sw @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)) @ X0)) @ cHOL4.words.word_H) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value))) @ cHOL4.words.word_L) @ (cHOL4.integer_word.i2w @ X0))))))) (Tinteger_word.saturate_sw2sw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_sw2sw @ X0)) @ (cHOL4.integer_word.saturate_i2sw @ (cHOL4.integer_word.w2i @ X0)))))) (Tinteger_word.saturate_w2sw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_w2sw @ X0)) @ (cHOL4.integer_word.saturate_i2sw @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X0))))))) (Tinteger_word.saturate_sw2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_sw2w @ X0)) @ (cHOL4.integer_word.saturate_i2w @ (cHOL4.integer_word.w2i @ X0)))))) (Tinteger_word.signed_saturate_add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer_word.signed_saturate_add @ X0) @ X1)) @ (cHOL4.integer_word.saturate_i2sw @ ((cHOL4.integer.int_add @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1))))))))) (Tinteger_word.signed_saturate_sub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer_word.signed_saturate_sub @ X0) @ X1)) @ (cHOL4.integer_word.saturate_i2sw @ ((cHOL4.integer.int_sub @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1))))))))) (Tinteger_word.fromString_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ ((cHOL4.list.CONS @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ ((cHOL4.list.CONS @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ X1))))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.list.CONS @ X2) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X4]: (X0 @ X4))))))) (Tinteger_word.fromString_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer_word.fromString @ ((cHOL4.list.CONS @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer_word.fromString @ ((cHOL4.list.CONS @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer_word.fromString @ cHOL4.list.NIL)) @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ cHOL4.list.NIL)))) @ ((cHOL4.min.= @ (cHOL4.integer_word.fromString @ ((cHOL4.list.CONS @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ X1)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ X1)))) @ (cHOL4.integer.int_of_num @ (cHOL4.ASCIInumbers.num_from_dec_string @ ((cHOL4.list.CONS @ X0) @ X1)))))))))))))))) (Tinteger_word.ONE_LE_TWOEXP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Tinteger_word.w2i_w2n_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer.int_of_num @ X1)))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ X0)) @ X1))))))) (Tinteger_word.w2i_n2w_pos,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.words.n2w @ X0))) @ (cHOL4.integer.int_of_num @ X0)))))) (Tinteger_word.w2i_n2w_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.words.n2w @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ X0)))))))) (Tinteger_word.i2w_w2i,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ (cHOL4.integer_word.w2i @ X0))) @ X0)))) (Tinteger_word.w2i_i2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.integer_word.i2w @ X0))) @ X0))))) (Tinteger_word.word_msb_i2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ (cHOL4.integer_word.i2w @ X0))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ ((cHOL4.integer.int_mod @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))))) (Tinteger_word.w2i_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tinteger_word.int_word_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.integer_word.i2w @ X1))))))) (Tinteger_word.w2i_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_le @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))))) (Tinteger_word.w2i_ge,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.integer_word.w2i @ X0))))) (Tinteger_word.ranged_int_word_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer_word.i2w @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))))))))) (Tinteger_word.sw2sw_i2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ (cHOL4.words.sw2sw @ (cHOL4.integer_word.i2w @ X0))) @ (cHOL4.integer_word.i2w @ X0)))))) (Tinteger_word.w2w_i2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.w2w @ (cHOL4.integer_word.i2w @ X0))) @ (cHOL4.integer_word.i2w @ X0)))))) (Tinteger_word.WORD_LTi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))))))) (Tinteger_word.WORD_GTi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ X0) @ X1)) @ ((cHOL4.integer.int_gt @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))))))) (Tinteger_word.WORD_LEi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))))))) (Tinteger_word.WORD_GEi,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ X0) @ X1)) @ ((cHOL4.integer.int_ge @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))))))) (Tinteger_word.word_add_i2w_w2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X1))))) @ ((cHOL4.words.word_add @ X0) @ X1))))))) (Tinteger_word.word_add_i2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_add @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))) @ ((cHOL4.words.word_add @ X0) @ X1))))))) (Tinteger_word.word_sub_i2w_w2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X1))))) @ ((cHOL4.words.word_sub @ X0) @ X1))))))) (Tinteger_word.word_sub_i2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_sub @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))) @ ((cHOL4.words.word_sub @ X0) @ X1))))))) (Tinteger_word.word_mul_i2w_w2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.words.w2n @ X1))))) @ ((cHOL4.words.word_mul @ X0) @ X1))))))) (Tinteger_word.word_mul_i2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_mul @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1)))) @ ((cHOL4.words.word_mul @ X0) @ X1))))))) (Tinteger_word.word_i2w_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.integer_word.i2w @ X0)) @ (cHOL4.integer_word.i2w @ X1))) @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_add @ X0) @ X1)))))))) (Tinteger_word.word_i2w_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.integer_word.i2w @ X0)) @ (cHOL4.integer_word.i2w @ X1))) @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_mul @ X0) @ X1)))))))) (Tinteger_word.MULT_MINUS_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.integer_word.i2w @ X0))) @ (cHOL4.integer_word.i2w @ (cHOL4.integer.int_neg @ X0)))))) (Tinteger_word.word_0_w2i,((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) (Tinteger_word.i2w_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ ((cHOL4.integer.int_div @ X1) @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)))) @ ((cHOL4.words.word_asr @ (cHOL4.integer_word.i2w @ X1)) @ X0)))))))) (Tinteger_word.INT_MIN_MONOTONIC,((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)))) (Tinteger_word.INT_MAX_MONOTONIC,((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)))) (Tinteger_word.w2i_sw2sw_bounds,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.integer_word.w2i @ (cHOL4.words.sw2sw @ X0)))) @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.w2i @ (cHOL4.words.sw2sw @ X0))) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)))))) (Tinteger_word.w2i_i2w_id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.integer_word.w2i @ (cHOL4.integer_word.i2w @ X0)))) @ ((cHOL4.min.= @ (cHOL4.integer_word.i2w @ X0)) @ (cHOL4.words.sw2sw @ (cHOL4.integer_word.i2w @ X0)))))))) (Tinteger_word.w2i_11_lift,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1))) @ ((cHOL4.min.= @ (cHOL4.words.sw2sw @ X0)) @ (cHOL4.words.sw2sw @ X1))))))))) (Tinteger_word.w2i_n2w_mod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (cHOL4.integer.Num @ ((cHOL4.integer.int_mod @ (cHOL4.integer_word.w2i @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)))) @ ((cHOL4.arithmetic.MOD @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))))))) (Tinteger_word.word_abs_w2i,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_abs @ X0)) @ (cHOL4.words.n2w @ (cHOL4.integer.Num @ (cHOL4.integer.ABS @ (cHOL4.integer_word.w2i @ X0)))))))) (Tinteger_word.word_abs_i2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ X0)) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (cHOL4.words.word_abs @ (cHOL4.integer_word.i2w @ X0))) @ (cHOL4.words.n2w @ (cHOL4.integer.Num @ (cHOL4.integer.ABS @ X0)))))))) (Tinteger_word.INT_MIN,((cHOL4.min.= @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))))) (Tinteger_word.INT_MAX,((cHOL4.min.= @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.integer.int_of_num @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)))) (Tinteger_word.UINT_MAX,((cHOL4.min.= @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.integer.int_of_num @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)))) (Tinteger_word.INT_BOUND_ORDER,((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.integer.int_of_num @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))) (Tinteger_word.INT_ZERO_LT_INT_MIN,((cHOL4.integer.int_lt @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) (Tinteger_word.INT_ZERO_LT_INT_MAX,((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value)))) (Tinteger_word.INT_ZERO_LE_INT_MAX,((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) (Tinteger_word.INT_ZERO_LT_UINT_MAX,((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value))) (Tinteger_word.w2i_1,((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.w2i_INT_MINw,((cHOL4.min.= @ (cHOL4.integer_word.w2i @ cHOL4.words.word_L)) @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value))) (Tinteger_word.w2i_UINT_MAXw,((cHOL4.min.= @ (cHOL4.integer_word.w2i @ cHOL4.words.word_T)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.w2i_INT_MAXw,((cHOL4.min.= @ (cHOL4.integer_word.w2i @ cHOL4.words.word_H)) @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) (Tinteger_word.w2i_minus_1,((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.w2i_lt_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.words.word_lt @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Tinteger_word.w2i_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.words.word_L)))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.words.word_2comp @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer_word.w2i @ X0))))))) (Tinteger_word.i2w_0,((cHOL4.min.= @ (cHOL4.integer_word.i2w @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Tinteger_word.i2w_minus_1,((cHOL4.min.= @ (cHOL4.integer_word.i2w @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tinteger_word.i2w_INT_MIN,((cHOL4.min.= @ (cHOL4.integer_word.i2w @ (cHOL4.integer_word.INT_MIN @ cHOL4.bool.the_value))) @ cHOL4.words.word_L)) (Tinteger_word.i2w_INT_MAX,((cHOL4.min.= @ (cHOL4.integer_word.i2w @ (cHOL4.integer_word.INT_MAX @ cHOL4.bool.the_value))) @ cHOL4.words.word_H)) (Tinteger_word.i2w_UINT_MAX,((cHOL4.min.= @ (cHOL4.integer_word.i2w @ (cHOL4.integer_word.UINT_MAX @ cHOL4.bool.the_value))) @ cHOL4.words.word_T)) (Tinteger_word.saturate_i2w_0,((cHOL4.min.= @ (cHOL4.integer_word.saturate_i2w @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Tinteger_word.saturate_i2sw_0,((cHOL4.min.= @ (cHOL4.integer_word.saturate_i2sw @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Tinteger_word.saturate_w2sw,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_w2sw @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.words.word_ls @ (cHOL4.words.w2w @ cHOL4.words.word_H)) @ X0))) @ cHOL4.words.word_H) @ (cHOL4.words.w2w @ X0)))))) (Tinteger_word.saturate_i2sw,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_i2w @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.saturate_n2w @ (cHOL4.integer.Num @ X0))))))) (Tinteger_word.saturate_sw2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_sw2w @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_lt @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.saturate_w2w @ X0)))))) (Tinteger_word.saturate_sw2sw,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer_word.saturate_sw2sw @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.sw2sw @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_le @ (cHOL4.words.sw2sw @ cHOL4.words.word_H)) @ X0)) @ cHOL4.words.word_H) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_le @ X0) @ (cHOL4.words.sw2sw @ cHOL4.words.word_L))) @ cHOL4.words.word_L) @ (cHOL4.words.w2w @ X0)))))))) (Tinteger_word.signed_saturate_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer_word.signed_saturate_sub @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.words.word_L)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ cHOL4.words.word_H) @ ((cHOL4.words.word_add @ X0) @ cHOL4.words.word_L))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.words.word_and @ X0) @ (cHOL4.words.word_1comp @ X1))) @ ((cHOL4.integer_word.signed_saturate_add @ X0) @ (cHOL4.words.word_2comp @ X1)))))))))) (Tinteger_word.signed_saturate_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer_word.signed_saturate_add @ X0) @ X1)) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (cHOL4.words.word_msb @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.words.word_msb @ X2))))) @ (((cHOL4.bool.COND @ X3) @ cHOL4.words.word_L) @ cHOL4.words.word_H)) @ X2)))) @ ((cHOL4.words.word_add @ X0) @ X1))) @ (cHOL4.words.word_msb @ X0)))))))) (Tinteger_word.different_sign_then_no_overflow,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1)))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.integer.int_add @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1))))))))) (Tinteger_word.w2i_i2w_pos,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.integer_word.i2w @ (cHOL4.integer.int_of_num @ X0)))) @ (cHOL4.integer.int_of_num @ X0)))))) (Tinteger_word.w2i_i2w_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ (cHOL4.integer_word.i2w @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))))))) (Tinteger_word.overflow,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.integer_word.w2i @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.integer.int_add @ (cHOL4.integer_word.w2i @ X0)) @ (cHOL4.integer_word.w2i @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ ((cHOL4.words.word_add @ X0) @ X1))))))))))) (TintegerRing.int_interp_p_def,((cHOL4.min.= @ cHOL4.integerRing.int_interp_p) @ (cHOL4.ringNorm.interp_p @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_polynom_simplify_def,((cHOL4.min.= @ cHOL4.integerRing.int_polynom_simplify) @ (cHOL4.ringNorm.polynom_simplify @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_polynom_normalize_def,((cHOL4.min.= @ cHOL4.integerRing.int_polynom_normalize) @ (cHOL4.ringNorm.polynom_normalize @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_canonical_sum_merge_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_canonical_sum_merge) @ (cHOL4.ringNorm.r_canonical_sum_merge @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_monom_insert_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_monom_insert) @ (cHOL4.ringNorm.r_monom_insert @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_varlist_insert_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_varlist_insert) @ (cHOL4.ringNorm.r_varlist_insert @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_canonical_sum_scalar_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_canonical_sum_scalar) @ (cHOL4.ringNorm.r_canonical_sum_scalar @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_canonical_sum_scalar2_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_canonical_sum_scalar2) @ (cHOL4.ringNorm.r_canonical_sum_scalar2 @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_canonical_sum_scalar3_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_canonical_sum_scalar3) @ (cHOL4.ringNorm.r_canonical_sum_scalar3 @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_canonical_sum_prod_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_canonical_sum_prod) @ (cHOL4.ringNorm.r_canonical_sum_prod @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_canonical_sum_simplify_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_canonical_sum_simplify) @ (cHOL4.ringNorm.r_canonical_sum_simplify @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_ivl_aux_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_ivl_aux) @ (cHOL4.ringNorm.r_ivl_aux @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_interp_vl_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_interp_vl) @ (cHOL4.ringNorm.r_interp_vl @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_interp_m_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_interp_m) @ (cHOL4.ringNorm.r_interp_m @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_ics_aux_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_ics_aux) @ (cHOL4.ringNorm.r_ics_aux @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_interp_cs_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_interp_cs) @ (cHOL4.ringNorm.r_interp_cs @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_spolynom_normalize_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_spolynom_normalize) @ (cHOL4.ringNorm.r_spolynom_normalize @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_spolynom_simplify_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_spolynom_simplify) @ (cHOL4.ringNorm.r_spolynom_simplify @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_r_interp_sp_def,((cHOL4.min.= @ cHOL4.integerRing.int_r_interp_sp) @ (cHOL4.ringNorm.r_interp_sp @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg)))) (TintegerRing.int_is_ring,(cHOL4.ring.is_ring @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg))) (TintegerRing.int_ring_thms,((cHOL4.bool./\ @ (cHOL4.ring.is_ring @ (((((cHOL4.ring.ring @ cHOL4.integer.int_0) @ cHOL4.integer.int_1) @ cHOL4.integer.int_add) @ cHOL4.integer.int_mul) @ cHOL4.integer.int_neg))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_interp_p @ X0) @ X1)) @ ((cHOL4.integerRing.int_r_interp_cs @ X0) @ (cHOL4.integerRing.int_polynom_simplify @ X1)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_interp_p @ X0) @ (cHOL4.ringNorm.Pconst @ X2))) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_interp_p @ X0) @ (cHOL4.ringNorm.Pvar @ X3))) @ ((cHOL4.quote.varmap_find @ X3) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_interp_p @ X0) @ ((cHOL4.ringNorm.Pplus @ X4) @ X5))) @ ((cHOL4.integer.int_add @ ((cHOL4.integerRing.int_interp_p @ X0) @ X4)) @ ((cHOL4.integerRing.int_interp_p @ X0) @ X5)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_interp_p @ X0) @ ((cHOL4.ringNorm.Pmult @ X4) @ X5))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integerRing.int_interp_p @ X0) @ X4)) @ ((cHOL4.integerRing.int_interp_p @ X0) @ X5)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_interp_p @ X0) @ (cHOL4.ringNorm.Popp @ X4))) @ (cHOL4.integer.int_neg @ ((cHOL4.integerRing.int_interp_p @ X0) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ cHOL4.quote.End_idx) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ X6)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Right_idx @ X9)) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ ((cHOL4.quote.varmap_find @ X9) @ X7))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Left_idx @ X9)) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ ((cHOL4.quote.varmap_find @ X9) @ X8))))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ X3) @ cHOL4.quote.Empty_vm)) @ (cHOL4.min.|at| @ (^[X6]: cHOL4.bool.T)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ X15) @ X14)) @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ X10))) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X10))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ X15) @ cHOL4.integer.int_1)) @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ X10))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ cHOL4.integer.int_1) @ X14)) @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ X10))) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ cHOL4.integer.int_1) @ cHOL4.integer.int_1)) @ X13) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X11) @ X10))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X10))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X16]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ X16) @ cHOL4.canonical.Nil_monom)) @ X16)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X17]: (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X19) @ X18) @ X17))) @ (((cHOL4.canonical.Cons_monom @ X19) @ X18) @ X17))))))))) @ (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X21) @ X20))) @ ((cHOL4.canonical.Cons_varlist @ X21) @ X20))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_monom_insert @ X15) @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ X15) @ X14)) @ X13) @ X10)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ (((cHOL4.integerRing.int_r_monom_insert @ X15) @ X13) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_monom_insert @ X15) @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ X15) @ cHOL4.integer.int_1)) @ X13) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ (((cHOL4.integerRing.int_r_monom_insert @ X15) @ X13) @ X10))))))))))))) @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_monom_insert @ X15) @ X13) @ cHOL4.canonical.Nil_monom)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ cHOL4.canonical.Nil_monom))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_varlist_insert @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ cHOL4.integer.int_1) @ X14)) @ X13) @ X10)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.integerRing.int_r_varlist_insert @ X13) @ X10))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_varlist_insert @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_add @ cHOL4.integer.int_1) @ cHOL4.integer.int_1)) @ X13) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.integerRing.int_r_varlist_insert @ X13) @ X10))))))))))) @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_varlist_insert @ X13) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_scalar @ X22) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.integer.int_mul @ X22) @ X2)) @ X23) @ ((cHOL4.integerRing.int_r_canonical_sum_scalar @ X22) @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_scalar @ X22) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.canonical.Cons_monom @ X22) @ X23) @ ((cHOL4.integerRing.int_r_canonical_sum_scalar @ X22) @ X24)))))))))) @ (cHOL4.bool.! @ (^[X22]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_scalar @ X22) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_scalar2 @ X25) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.integerRing.int_r_monom_insert @ X2) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ ((cHOL4.integerRing.int_r_canonical_sum_scalar2 @ X25) @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_scalar2 @ X25) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.integerRing.int_r_varlist_insert @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ ((cHOL4.integerRing.int_r_canonical_sum_scalar2 @ X25) @ X24)))))))))) @ (cHOL4.bool.! @ (^[X25]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_scalar2 @ X25) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ X22) @ X25) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.integerRing.int_r_monom_insert @ ((cHOL4.integer.int_mul @ X22) @ X2)) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ X22) @ X25) @ X24)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ X22) @ X25) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.integerRing.int_r_monom_insert @ X22) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ X22) @ X25) @ X24)))))))))))) @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ X22) @ X25) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_prod @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X26)) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ X15) @ X13) @ X26)) @ ((cHOL4.integerRing.int_r_canonical_sum_prod @ X11) @ X26)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_prod @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X26)) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ ((cHOL4.integerRing.int_r_canonical_sum_scalar2 @ X13) @ X26)) @ ((cHOL4.integerRing.int_r_canonical_sum_prod @ X11) @ X26)))))))))) @ (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_canonical_sum_prod @ cHOL4.canonical.Nil_monom) @ X26)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.integer.int_0)) @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ X24)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.integer.int_1)) @ ((cHOL4.canonical.Cons_varlist @ X23) @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ X24))) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.canonical.Cons_varlist @ X23) @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ X24)))))))) @ ((cHOL4.min.= @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_ivl_aux @ X0) @ X27) @ cHOL4.list.NIL)) @ ((cHOL4.quote.varmap_find @ X27) @ X0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X28]: (cHOL4.bool.! @ (^[X29]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_ivl_aux @ X0) @ X27) @ ((cHOL4.list.CONS @ X28) @ X29))) @ ((cHOL4.integer.int_mul @ ((cHOL4.quote.varmap_find @ X27) @ X0)) @ (((cHOL4.integerRing.int_r_ivl_aux @ X0) @ X28) @ X29))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_interp_vl @ X0) @ cHOL4.list.NIL)) @ cHOL4.integer.int_1)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X30]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_interp_vl @ X0) @ ((cHOL4.list.CONS @ X27) @ X30))) @ (((cHOL4.integerRing.int_r_ivl_aux @ X0) @ X27) @ X30)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_interp_m @ X0) @ X2) @ cHOL4.list.NIL)) @ X2)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X30]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_interp_m @ X0) @ X2) @ ((cHOL4.list.CONS @ X27) @ X30))) @ ((cHOL4.integer.int_mul @ X2) @ (((cHOL4.integerRing.int_r_ivl_aux @ X0) @ X27) @ X30))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ X31) @ cHOL4.canonical.Nil_monom)) @ X31)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ X31) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.integer.int_add @ X31) @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ ((cHOL4.integerRing.int_r_interp_vl @ X0) @ X23)) @ X24)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ X31) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ ((cHOL4.integer.int_add @ X31) @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ (((cHOL4.integerRing.int_r_interp_m @ X0) @ X2) @ X23)) @ X24)))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_interp_cs @ X0) @ cHOL4.canonical.Nil_monom)) @ cHOL4.integer.int_0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_interp_cs @ X0) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ ((cHOL4.integerRing.int_r_interp_vl @ X0) @ X23)) @ X24))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.integerRing.int_r_interp_cs @ X0) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.integerRing.int_r_ics_aux @ X0) @ (((cHOL4.integerRing.int_r_interp_m @ X0) @ X2) @ X23)) @ X24))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.integerRing.int_polynom_normalize @ (cHOL4.ringNorm.Pvar @ X3))) @ ((cHOL4.canonical.Cons_varlist @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL)) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.integerRing.int_polynom_normalize @ (cHOL4.ringNorm.Pconst @ X2))) @ (((cHOL4.canonical.Cons_monom @ X2) @ cHOL4.list.NIL) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X32]: (cHOL4.bool.! @ (^[X33]: ((cHOL4.min.= @ (cHOL4.integerRing.int_polynom_normalize @ ((cHOL4.ringNorm.Pplus @ X32) @ X33))) @ ((cHOL4.integerRing.int_r_canonical_sum_merge @ (cHOL4.integerRing.int_polynom_normalize @ X32)) @ (cHOL4.integerRing.int_polynom_normalize @ X33)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X32]: (cHOL4.bool.! @ (^[X33]: ((cHOL4.min.= @ (cHOL4.integerRing.int_polynom_normalize @ ((cHOL4.ringNorm.Pmult @ X32) @ X33))) @ ((cHOL4.integerRing.int_r_canonical_sum_prod @ (cHOL4.integerRing.int_polynom_normalize @ X32)) @ (cHOL4.integerRing.int_polynom_normalize @ X33)))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integerRing.int_polynom_normalize @ (cHOL4.ringNorm.Popp @ X1))) @ (((cHOL4.integerRing.int_r_canonical_sum_scalar3 @ (cHOL4.integer.int_neg @ cHOL4.integer.int_1)) @ cHOL4.list.NIL) @ (cHOL4.integerRing.int_polynom_normalize @ X1)))))))))) @ (cHOL4.bool.! @ (^[X34]: ((cHOL4.min.= @ (cHOL4.integerRing.int_polynom_simplify @ X34)) @ (cHOL4.integerRing.int_r_canonical_sum_simplify @ (cHOL4.integerRing.int_polynom_normalize @ X34))))))))))))))))))))))) (TintegerRing.int_calculate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X2) @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X1) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X2) @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X2))) @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X0))) @ X0)) @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))))))))))))))) (TintegerRing.int_rewrites,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_of_num @ X3))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X2) @ X3)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X3) @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X2) @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X2) @ X3))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X3) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X3)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_of_num @ X3))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X3))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X3)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X3)))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_of_num @ X3))) @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X3)))) @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X1))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ cHOL4.integer.int_0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ cHOL4.integer.int_1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X2))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT2 @ X2))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X2) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ ((cHOL4.prim_rec.< @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ ((cHOL4.prim_rec.< @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X3) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ ((cHOL4.prim_rec.< @ X2) @ X3))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ cHOL4.num.0) @ X2)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT1 @ X2)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT2 @ X2)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ ((cHOL4.arithmetic.<= @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ ((cHOL4.arithmetic.<= @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ X3) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ ((cHOL4.arithmetic.<= @ X2) @ X3))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X2) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3))) @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ X4) @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT1 @ X2)) @ cHOL4.num.0)) @ (cHOL4.numeral.iDUB @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT2 @ X2)) @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT1 @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ X5)) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X5) @ cHOL4.bool.T)) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ cHOL4.bool.F) @ X5)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X5) @ cHOL4.bool.F)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X5) @ X5)) @ X5))))))))))))))))))))))) (Tinteger.int_ge,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.int_gt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))) (Tinteger.int_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X1) @ X0)))))))) (Tinteger.int_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1)))))))) (Tinteger.tint_0,((cHOL4.min.= @ cHOL4.integer.tint_0) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tinteger.tint_1,((cHOL4.min.= @ cHOL4.integer.tint_1) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tinteger.tint_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer.tint_neg @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.pair.|comma| @ X1) @ X0))))))) (Tinteger.tint_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.tint_add @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ X3)))))))))))) (Tinteger.tint_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.tint_mul @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ ((cHOL4.arithmetic.* @ X1) @ X3))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X3)) @ ((cHOL4.arithmetic.* @ X1) @ X2))))))))))))) (Tinteger.tint_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.tint_lt @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X3)) @ ((cHOL4.arithmetic.+ @ X2) @ X1)))))))))))) (Tinteger.tint_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.tint_eq @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X3)) @ ((cHOL4.arithmetic.+ @ X2) @ X1)))))))))))) (Tinteger.tint_of_num,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.tint_of_num @ cHOL4.num.0)) @ cHOL4.integer.tint_0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.tint_of_num @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.integer.tint_add @ (cHOL4.integer.tint_of_num @ X0)) @ cHOL4.integer.tint_1)))))) (Tinteger.int_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.tint_eq @ X2))))))) @ X0)))) (Tinteger.int_bijections,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_ABS_CLASS @ (cHOL4.integer.int_REP_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X3) @ X3)) @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.tint_eq @ X3)))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.integer.int_REP_CLASS @ (cHOL4.integer.int_ABS_CLASS @ X1))) @ X1)))))) (Tinteger.int_REP_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_REP @ X0)) @ (cHOL4.min.|at| @ (cHOL4.integer.int_REP_CLASS @ X0)))))) (Tinteger.int_ABS_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_ABS @ X0)) @ (cHOL4.integer.int_ABS_CLASS @ (cHOL4.integer.tint_eq @ X0)))))) (Tinteger.int_0,((cHOL4.min.= @ cHOL4.integer.int_0) @ (cHOL4.integer.int_ABS @ cHOL4.integer.tint_0))) (Tinteger.int_1,((cHOL4.min.= @ cHOL4.integer.int_1) @ (cHOL4.integer.int_ABS @ cHOL4.integer.tint_1))) (Tinteger.int_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_ABS @ (cHOL4.integer.tint_neg @ (cHOL4.integer.int_REP @ X0))))))) (Tinteger.int_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ (cHOL4.integer.int_ABS @ ((cHOL4.integer.tint_add @ (cHOL4.integer.int_REP @ X0)) @ (cHOL4.integer.int_REP @ X1))))))))) (Tinteger.int_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ (cHOL4.integer.int_ABS @ ((cHOL4.integer.tint_mul @ (cHOL4.integer.int_REP @ X0)) @ (cHOL4.integer.int_REP @ X1))))))))) (Tinteger.int_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.tint_lt @ (cHOL4.integer.int_REP @ X0)) @ (cHOL4.integer.int_REP @ X1)))))))) (Tinteger.Num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.Num @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ X1)))))))) (Tinteger.int_div,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ X0)) @ (cHOL4.integer.Num @ X1)))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.Num @ X1))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.Num @ X1))) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ X0)) @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X1)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.integer.Num @ X0)) @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X1)))) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X1))))))))))))) (Tinteger.int_mod,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_div @ X0) @ X1)) @ X1))))))))) (Tinteger.INT_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.ABS @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_neg @ X0)) @ X0))))) (Tinteger.int_quot,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ X0)) @ (cHOL4.integer.Num @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.Num @ X1)))))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ X0)) @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X1))))))))))))) (Tinteger.int_rem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X0) @ X1)) @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_quot @ X0) @ X1)) @ X1))))))))) (Tinteger.INT_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X2) @ X0)) @ X1))))))))) (Tinteger.int_exp,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ X0) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.integer.int_mul @ X0) @ ((cHOL4.integer.int_exp @ X0) @ X1))))))))) (Tinteger.INT_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_min @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ X0) @ X1))))))) (Tinteger.INT_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_max @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ X1) @ X0))))))) (Tinteger.LEAST_INT_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.LEAST_INT @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X2) @ X1)) @ (cHOL4.bool.~ @ (X0 @ X2)))))))))))) (Tinteger.INT_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tinteger.INT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tinteger.INT_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ X0))))) (Tinteger.INT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tinteger.INT_EQ_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Tinteger.INT_EQ_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tinteger.INT_ENTIRE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (Tinteger.INT_LT_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_add @ X0) @ X1))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))))) (Tinteger.INT_LT_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X0) @ X1))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))))))) (Tinteger.INT_LE_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ ((cHOL4.integer.int_add @ X0) @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))))) (Tinteger.INT_LE_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ ((cHOL4.integer.int_add @ X0) @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))))))) (Tinteger.INT_LT_IMP_NE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tinteger.INT_NEG_MINUS1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X0)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Tinteger.INT_NEG_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X0)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ X1)))))))) (Tinteger.INT_SUB_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2)))))))))) (Tinteger.INT_SUB_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2)))))))))) (Tinteger.INT_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X0)) @ X1)))))) (Tinteger.INT_SUB_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_sub @ X0) @ X1))) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.INT_SUB_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_sub @ X0) @ X1))) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))) (Tinteger.INT_NEG_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_sub @ X0) @ X1))) @ ((cHOL4.integer.int_sub @ X1) @ X0))))))) (Tinteger.INT_NEG_0,((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) (Tinteger.INT_NEG_EQ0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_LE_NEGR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_LE_NEGL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ X0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))) (Tinteger.INT_LE_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X0) @ X0))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))) (Tinteger.INT_SUB_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tinteger.INT_SUB_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) (Tinteger.INT_SUB_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ ((cHOL4.integer.int_sub @ X0) @ X1))) @ X0)))))) (Tinteger.INT_SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X1)) @ X0)))))) (Tinteger.INT_LT_ADD1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tinteger.INT_LT_ADDNEG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1))) @ X2)) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X2) @ X1)))))))))) (Tinteger.INT_LT_ADDNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X2)))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X1) @ X2)) @ X0))))))))) (Tinteger.INT_LT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X0) @ X1)))))))) (Tinteger.INT_LE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X0) @ X1)))))))) (Tinteger.INT_LE_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X2) @ X3))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X3)))))))))))) (Tinteger.INT_LT_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X2) @ X3))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X3)))))))))))) (Tinteger.INT_LE_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.integer.int_le @ X0) @ X1))))))))) (Tinteger.INT_LE_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X0) @ X2))) @ ((cHOL4.integer.int_le @ X1) @ X2))))))))) (Tinteger.INT_LT_01,((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tinteger.INT_LE_01,((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tinteger.INT_LE_SQUARE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mul @ X0) @ X0))))) (Tinteger.INT_LE_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mul @ X0) @ X1)))))))) (Tinteger.INT_LE_NEGTOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ X0)))))) (Tinteger.INT_LT_NEGTOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ X0))))))) (Tinteger.INT_NEG_GE0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_NEG_LE0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))) (Tinteger.INT_NEG_GT0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_NEG_LT0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))) (Tinteger.INT_LTE_ANTSYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X0)))))))) (Tinteger.INT_LET_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X0)))))))) (Tinteger.INT_LE_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tinteger.INT_LE_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X2))) @ ((cHOL4.integer.int_le @ X0) @ X2))))))))) (Tinteger.INT_LET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X2))) @ ((cHOL4.integer.int_lt @ X0) @ X2))))))))) (Tinteger.INT_LTE_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X2))) @ ((cHOL4.integer.int_lt @ X0) @ X2))))))))) (Tinteger.INT_LT_IMP_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X0) @ X1))))))) (Tinteger.INT_LT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tinteger.INT_LE_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tinteger.INT_LE_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_le @ X0) @ X0)))) (Tinteger.INT_LTE_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.INT_LET_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))) (Tinteger.INT_LE_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.INT_NOT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.integer.int_le @ X0) @ X1))) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))) (Tinteger.INT_LT_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X1) @ X0)))))))) (Tinteger.INT_LT_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X0)))))))) (Tinteger.INT_NOT_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X0) @ X1))) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.INT_LT_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.integer.int_lt @ X0) @ X1))))))))) (Tinteger.INT_LT_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X0) @ X2))) @ ((cHOL4.integer.int_lt @ X1) @ X2))))))))) (Tinteger.INT_NEG_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_mul @ X0) @ X1))))))) (Tinteger.INT_NEGNEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X0))) @ X0)))) (Tinteger.INT_NEG_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ X0) @ (cHOL4.integer.int_neg @ X1)))))))) (Tinteger.INT_NEG_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X0)) @ X1))))))) (Tinteger.INT_MUL_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) (Tinteger.INT_MUL_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) (Tinteger.INT_NEG_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_add @ X0) @ X1))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_neg @ X1)))))))) (Tinteger.INT_RNEG_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_neg @ X0)))))))) (Tinteger.INT_LNEG_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ X1)))))))) (Tinteger.INT_ADD_RID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tinteger.INT_ADD_LID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tinteger.INT_EQ_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tinteger.INT_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tinteger.INT_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2)))))))))) (Tinteger.INT_MUL_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tinteger.INT_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (Tinteger.INT_ADD_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) (Tinteger.INT_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ X0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) (Tinteger.INT_ADD_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X0)))) (Tinteger.INT_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (Tinteger.INT_1,((cHOL4.min.= @ cHOL4.integer.int_1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tinteger.INT_0,((cHOL4.min.= @ cHOL4.integer.int_0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) (Tinteger.NUM_POSINT_EX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X0) @ cHOL4.integer.int_0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ X1)))))))) (Tinteger.INT_LT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ cHOL4.integer.int_0) @ X0)) @ ((cHOL4.integer.int_lt @ cHOL4.integer.int_0) @ X1))) @ ((cHOL4.integer.int_lt @ cHOL4.integer.int_0) @ ((cHOL4.integer.int_mul @ X0) @ X1)))))))) (Tinteger.INT_LT_LADD_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X1) @ X2)) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X0) @ X2)))))))))) (Tinteger.INT_LT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X2))) @ ((cHOL4.integer.int_lt @ X0) @ X2))))))))) (Tinteger.INT_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X0) @ X0))))) (Tinteger.INT_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X0)))))))) (Tinteger.INT_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ X1)) @ ((cHOL4.integer.int_mul @ X2) @ X0)))))))))) (Tinteger.INT_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X2) @ ((cHOL4.integer.int_mul @ X1) @ X0))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ X2) @ X1)) @ X0))))))))) (Tinteger.INT_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X2) @ ((cHOL4.integer.int_add @ X1) @ X0))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0))))))))) (Tinteger.INT_MUL_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X1) @ X0)) @ ((cHOL4.integer.int_mul @ X0) @ X1))))))) (Tinteger.INT_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X1) @ X0)) @ ((cHOL4.integer.int_mul @ X0) @ X1))))))) (Tinteger.INT_ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ X0)) @ ((cHOL4.integer.int_add @ X0) @ X1))))))) (Tinteger.INT_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X1) @ X0)) @ ((cHOL4.integer.int_add @ X0) @ X1))))))) (Tinteger.INT_10,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.integer.int_1) @ cHOL4.integer.int_0))) (Tinteger.EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tinteger.EQ_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))) (Tinteger.LT_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ ((cHOL4.prim_rec.< @ X1) @ X2))))))))) (Tinteger.LT_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))))))) (Tinteger.LT_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X0))))))) (Tinteger.LT_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X2)) @ ((cHOL4.prim_rec.< @ X1) @ X3))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ X2) @ X3)))))))))))) (Tinteger.TINT_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.tint_eq @ X0) @ X0)))) (Tinteger.TINT_EQ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ X1) @ X0))))))) (Tinteger.TINT_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ X1) @ X2))) @ ((cHOL4.integer.tint_eq @ X0) @ X2))))))))) (Tinteger.TINT_EQ_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.integer.tint_eq @ X0)) @ (cHOL4.integer.tint_eq @ X1)))))))) (Tinteger.TINT_EQ_AP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ X0) @ X1))))))) (Tinteger.TINT_10,(cHOL4.bool.~ @ ((cHOL4.integer.tint_eq @ cHOL4.integer.tint_1) @ cHOL4.integer.tint_0))) (Tinteger.TINT_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.tint_add @ X0) @ X1)) @ ((cHOL4.integer.tint_add @ X1) @ X0))))))) (Tinteger.TINT_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.tint_mul @ X0) @ X1)) @ ((cHOL4.integer.tint_mul @ X1) @ X0))))))) (Tinteger.TINT_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.tint_add @ X0) @ ((cHOL4.integer.tint_add @ X1) @ X2))) @ ((cHOL4.integer.tint_add @ ((cHOL4.integer.tint_add @ X0) @ X1)) @ X2))))))))) (Tinteger.TINT_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.tint_mul @ X0) @ ((cHOL4.integer.tint_mul @ X1) @ X2))) @ ((cHOL4.integer.tint_mul @ ((cHOL4.integer.tint_mul @ X0) @ X1)) @ X2))))))))) (Tinteger.TINT_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.tint_mul @ X0) @ ((cHOL4.integer.tint_add @ X1) @ X2))) @ ((cHOL4.integer.tint_add @ ((cHOL4.integer.tint_mul @ X0) @ X1)) @ ((cHOL4.integer.tint_mul @ X0) @ X2)))))))))) (Tinteger.TINT_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_add @ cHOL4.integer.tint_0) @ X0)) @ X0)))) (Tinteger.TINT_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_mul @ cHOL4.integer.tint_1) @ X0)) @ X0)))) (Tinteger.TINT_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_add @ (cHOL4.integer.tint_neg @ X0)) @ X0)) @ cHOL4.integer.tint_0)))) (Tinteger.TINT_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.tint_lt @ X0) @ X1)) @ ((cHOL4.integer.tint_lt @ X1) @ X0)))))))) (Tinteger.TINT_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.integer.tint_lt @ X0) @ X0))))) (Tinteger.TINT_LT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.tint_lt @ X0) @ X1)) @ ((cHOL4.integer.tint_lt @ X1) @ X2))) @ ((cHOL4.integer.tint_lt @ X0) @ X2))))))))) (Tinteger.TINT_LT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.tint_lt @ X1) @ X2)) @ ((cHOL4.integer.tint_lt @ ((cHOL4.integer.tint_add @ X0) @ X1)) @ ((cHOL4.integer.tint_add @ X0) @ X2)))))))))) (Tinteger.TINT_LT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.tint_lt @ cHOL4.integer.tint_0) @ X0)) @ ((cHOL4.integer.tint_lt @ cHOL4.integer.tint_0) @ X1))) @ ((cHOL4.integer.tint_lt @ cHOL4.integer.tint_0) @ ((cHOL4.integer.tint_mul @ X0) @ X1)))))))) (Tinteger.TINT_NEG_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ (cHOL4.integer.tint_neg @ X0)) @ (cHOL4.integer.tint_neg @ X1)))))))) (Tinteger.TINT_ADD_WELLDEFR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_add @ X0) @ X2)) @ ((cHOL4.integer.tint_add @ X1) @ X2)))))))))) (Tinteger.TINT_ADD_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ X2) @ X3))) @ ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_add @ X0) @ X2)) @ ((cHOL4.integer.tint_add @ X1) @ X3)))))))))))) (Tinteger.TINT_MUL_WELLDEFR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_mul @ X0) @ X2)) @ ((cHOL4.integer.tint_mul @ X1) @ X2)))))))))) (Tinteger.TINT_MUL_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ X2) @ X3))) @ ((cHOL4.integer.tint_eq @ ((cHOL4.integer.tint_mul @ X0) @ X2)) @ ((cHOL4.integer.tint_mul @ X1) @ X3)))))))))))) (Tinteger.TINT_LT_WELLDEFR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.tint_lt @ X0) @ X2)) @ ((cHOL4.integer.tint_lt @ X1) @ X2)))))))))) (Tinteger.TINT_LT_WELLDEFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.tint_eq @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.integer.tint_lt @ X0) @ X1)) @ ((cHOL4.integer.tint_lt @ X0) @ X2)))))))))) (Tinteger.TINT_LT_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X0) @ X1)) @ ((cHOL4.integer.tint_eq @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.integer.tint_lt @ X0) @ X2)) @ ((cHOL4.integer.tint_lt @ X1) @ X3)))))))))))) (Tinteger.tint_of_num_eq,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (cHOL4.integer.tint_of_num @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.pair.SND @ (cHOL4.integer.tint_of_num @ X0))) @ X0))))) (Tinteger.TINT_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.tint_eq @ (cHOL4.integer.tint_of_num @ X0)) @ (cHOL4.integer.tint_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tinteger.NUM_POSTINT_EX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.integer.tint_lt @ X0) @ cHOL4.integer.tint_0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.integer.tint_eq @ X0) @ (cHOL4.integer.tint_of_num @ X1)))))))) (Tinteger.int_ABS_REP_CLASS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_ABS_CLASS @ (cHOL4.integer.int_REP_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.integer.tint_eq @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.tint_eq @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.integer.int_REP_CLASS @ (cHOL4.integer.int_ABS_CLASS @ X1))) @ X1)))))) (Tinteger.int_QUOTIENT,(((cHOL4.quotient.QUOTIENT @ cHOL4.integer.tint_eq) @ cHOL4.integer.int_ABS) @ cHOL4.integer.int_REP)) (Tinteger.int_of_num,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ cHOL4.integer.int_0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X0)) @ cHOL4.integer.int_1)))))) (Tinteger.INT_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tinteger.INT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) (Tinteger.INT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Tinteger.INT_LT_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ X0)))))) (Tinteger.INT_NZ_IMP_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ X0)))))) (Tinteger.INT_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X0)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Tinteger.INT_SUB_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X0)) @ (cHOL4.integer.int_neg @ X1))))))) (Tinteger.INT_LT_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_sub @ X2) @ X1)))))))))) (Tinteger.INT_LT_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_add @ X2) @ X1)))))))))) (Tinteger.INT_LT_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X2)) @ X1))))))))) (Tinteger.INT_LE_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X0) @ X2)) @ X1))))))))) (Tinteger.INT_LE_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_le @ X0) @ ((cHOL4.integer.int_add @ X2) @ X1)))))))))) (Tinteger.INT_LT_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))) (Tinteger.INT_LE_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.INT_ADD2_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_add @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X2) @ X3))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_sub @ X0) @ X2)) @ ((cHOL4.integer.int_sub @ X1) @ X3)))))))))))) (Tinteger.INT_SUB_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_neg @ X0))))) (Tinteger.INT_SUB_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X0)))) (Tinteger.INT_LET_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X2) @ X3))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X3)))))))))))) (Tinteger.INT_LTE_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X2) @ X3))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X2)) @ ((cHOL4.integer.int_add @ X1) @ X3)))))))))))) (Tinteger.INT_LET_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X0) @ X1)))))))) (Tinteger.INT_LTE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ X0) @ X1)))))))) (Tinteger.INT_LT_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X2) @ X3))))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X3)))))))))))) (Tinteger.INT_SUB_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_neg @ X0)) @ X1)) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_add @ X0) @ X1)))))))) (Tinteger.INT_SUB_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_add @ X0) @ X1))))))) (Tinteger.INT_SUB_NEG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_sub @ X1) @ X0))))))) (Tinteger.INT_SUB_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.integer.int_sub @ X0) @ X2))))))))) (Tinteger.INT_EQ_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ X2)) @ X1))))))))) (Tinteger.INT_EQ_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ X2) @ X1)))))))))) (Tinteger.INT_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1))))))))) (Tinteger.INT_SUB_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_sub @ X0) @ X1))) @ X1)))))) (Tinteger.INT_ADD_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_add @ X0) @ X1))) @ (cHOL4.integer.int_neg @ X1))))))) (Tinteger.INT_EQ_LMUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))))))))))) (Tinteger.INT_EQ_IMP_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X0) @ X1))))))) (Tinteger.INT_POS_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (Tinteger.INT_EQ_RMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2)))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tinteger.INT_EQ_LMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2)))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tinteger.INT_DIFFSQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_add @ X0) @ X1)) @ ((cHOL4.integer.int_sub @ X0) @ X1))) @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ X0) @ X0)) @ ((cHOL4.integer.int_mul @ X1) @ X1)))))))) (Tinteger.INT_POASQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mul @ X0) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (Tinteger.INT_SUMSQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X0)) @ ((cHOL4.integer.int_mul @ X1) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (Tinteger.INT_EQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X0)) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tinteger.INT_LT_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1)))) @ ((cHOL4.prim_rec.< @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1)))) @ cHOL4.bool.F))))))))) (Tinteger.NUM_POSINT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.?! @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ X1)))))))) (Tinteger.NUM_POSINT_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ X1)))))))) (Tinteger.NUM_NEGINT_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))))))))) (Tinteger.INT_NUM_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (Tinteger.INT_DISCRETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tinteger.INT_LE_LT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ X0)) @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tinteger.INT_LT_LE1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))))) (Tinteger.INT_MUL_EQ_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tinteger.NUM_OF_INT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.Num @ (cHOL4.integer.int_of_num @ X0))) @ X0)))) (Tinteger.INT_OF_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.integer.Num @ X0))) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))) (Tinteger.LE_NUM_OF_INT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ X0)) @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.integer.Num @ X1)))))))) (Tinteger.INT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ X0) @ X1))))))))) (Tinteger.INT_DIV_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_neg @ X0)) @ X1)))))))) (Tinteger.INT_DIV_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_div @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tinteger.INT_DIV_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_DIV_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ X0) @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tinteger.INT_MOD_BOUNDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X1) @ ((cHOL4.integer.int_mod @ X0) @ X1))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mod @ X0) @ X1))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ X1))))))))) (Tinteger.INT_DIVISION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_div @ X1) @ X0)) @ X0)) @ ((cHOL4.integer.int_mod @ X1) @ X0)))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_mod @ X1) @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mod @ X1) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mod @ X1) @ X0))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mod @ X1) @ X0)) @ X0)))))))))) (Tinteger.INT_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ X0) @ X1))))))))) (Tinteger.INT_MOD_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ (cHOL4.integer.int_neg @ X1))) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_neg @ X0)) @ X1))))))))) (Tinteger.INT_MOD0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_DIV_MUL_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_div @ X0) @ X1)) @ X1)) @ X0))))))) (Tinteger.INT_DIV_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ X1)) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X1) @ X3)) @ ((cHOL4.integer.int_le @ X3) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_lt @ X3) @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ X0) @ X1)) @ X2))))))))) (Tinteger.INT_MOD_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X3) @ X1)) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X1) @ X2)) @ ((cHOL4.integer.int_le @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.integer.int_lt @ X2) @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ X2))))))))) (Tinteger.INT_MOD_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_MOD_COMMON_FACTOR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_mul @ X1) @ X0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tinteger.INT_DIV_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ X0)) @ X1))))))) (Tinteger.INT_DIV_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_mul @ X1) @ X0)) @ X0)) @ X1))))))) (Tinteger.INT_MOD_EQ0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X1) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_mul @ X2) @ X0))))))))))) (Tinteger.INT_MUL_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_mul @ X2) @ X0)) @ X1)) @ ((cHOL4.integer.int_mul @ X2) @ ((cHOL4.integer.int_div @ X0) @ X1))))))))))) (Tinteger.INT_ADD_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X2)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X1) @ X2)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_add @ X0) @ X1)) @ X2)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_div @ X0) @ X2)) @ ((cHOL4.integer.int_div @ X1) @ X2))))))))))) (Tinteger.INT_MOD_ADD_MULTIPLES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X1) @ X2)) @ X0)) @ X2)) @ ((cHOL4.integer.int_mod @ X0) @ X2)))))))))) (Tinteger.INT_MOD_NEG_NUMERATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_neg @ X0)) @ X1)) @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_sub @ X1) @ X0)) @ X1)))))))) (Tinteger.INT_MOD_PLUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mod @ X2) @ X0)) @ ((cHOL4.integer.int_mod @ X1) @ X0))) @ X0)) @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_add @ X2) @ X1)) @ X0)))))))))) (Tinteger.INT_MOD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mod @ X2) @ X0)) @ ((cHOL4.integer.int_mod @ X1) @ X0))) @ X0)) @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_sub @ X2) @ X1)) @ X0)))))))))) (Tinteger.INT_MOD_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_mod @ X1) @ X0)) @ X0)) @ ((cHOL4.integer.int_mod @ X1) @ X0)))))))) (Tinteger.INT_DIV_P,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.integer.int_div @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X3) @ X2)) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ X4)) @ ((cHOL4.integer.int_le @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.integer.int_lt @ X4) @ X2))))) @ (X0 @ X3)))))))))))))))) (Tinteger.INT_MOD_P,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.integer.int_mod @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X3) @ X2)) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ X4)) @ ((cHOL4.integer.int_le @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.integer.int_lt @ X4) @ X2))))) @ (X0 @ X4)))))))))))))))) (Tinteger.INT_DIV_FORALL_P,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.integer.int_div @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X3) @ X2)) @ X4))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ X4)) @ ((cHOL4.integer.int_le @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.integer.int_lt @ X4) @ X2)))))) @ (X0 @ X3))))))))))))))) (Tinteger.INT_MOD_FORALL_P,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.integer.int_mod @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X3) @ X2)) @ X4))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X2) @ X4)) @ ((cHOL4.integer.int_le @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.integer.int_lt @ X4) @ X2)))))) @ (X0 @ X4))))))))))))))) (Tinteger.INT_MOD_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) (Tinteger.INT_LESS_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ X1)) @ X0))))))) (Tinteger.INT_MOD_MINUS1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.integer.int_sub @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tinteger.INT_ABS_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.ABS @ X0))))) (Tinteger.INT_ABS_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.ABS @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_of_num @ X0))))) (Tinteger.INT_NEG_SAME_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ X0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_ABS_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.ABS @ (cHOL4.integer.int_neg @ X0))) @ (cHOL4.integer.ABS @ X0))))) (Tinteger.INT_ABS_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.ABS @ (cHOL4.integer.ABS @ X0))) @ (cHOL4.integer.ABS @ X0))))) (Tinteger.INT_ABS_EQ_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.ABS @ X0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))))) (Tinteger.INT_ABS_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.ABS @ X1))) @ (cHOL4.integer.ABS @ ((cHOL4.integer.int_mul @ X0) @ X1)))))))) (Tinteger.INT_ABS_EQ0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_ABS_LT0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_ABS_LE0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_ABS_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.ABS @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ X1)) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.ABS @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ X1) @ X0)) @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_neg @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.ABS @ X0))) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ X1)) @ X0)) @ ((cHOL4.integer.int_lt @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_neg @ (cHOL4.integer.ABS @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))))))) (Tinteger.INT_ABS_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.ABS @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ X1)) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ (cHOL4.integer.ABS @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_le @ X1) @ X0)) @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_neg @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ (cHOL4.integer.ABS @ X0))) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ X1)) @ X0)) @ ((cHOL4.integer.int_le @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X1) @ (cHOL4.integer.int_neg @ (cHOL4.integer.ABS @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_le @ X1) @ X0))))))))))) (Tinteger.INT_ABS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.ABS @ X0)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.ABS @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)))))))))) (Tinteger.INT_QUOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ X0) @ X1))))))))) (Tinteger.INT_QUOT_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_QUOT_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Tinteger.INT_QUOT_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_neg @ X0)) @ X1)) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_quot @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ X0) @ (cHOL4.integer.int_neg @ X1))) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_quot @ X0) @ X1)))))))))) (Tinteger.INT_ABS_QUOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_le @ (cHOL4.integer.ABS @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_quot @ X0) @ X1)) @ X1))) @ (cHOL4.integer.ABS @ X0)))))))) (Tinteger.INT_QUOT_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ X1)) @ X3))) @ ((cHOL4.bool./\ @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.integer.int_le @ X3) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.ABS @ X3)) @ (cHOL4.integer.ABS @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ X0) @ X1)) @ X2))))))))) (Tinteger.INT_QUOT_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ X0) @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tinteger.INT_REM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ X0) @ X1))))))))) (Tinteger.INT_REMQUOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_quot @ X1) @ X0)) @ X0)) @ ((cHOL4.integer.int_rem @ X1) @ X0)))) @ ((cHOL4.bool./\ @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_rem @ X1) @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_rem @ X1) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.ABS @ ((cHOL4.integer.int_rem @ X1) @ X0))) @ (cHOL4.integer.ABS @ X0)))))))))) (Tinteger.INT_REM_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.ABS @ X2)) @ (cHOL4.integer.ABS @ X1))) @ ((cHOL4.bool./\ @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.integer.int_le @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X3) @ X1)) @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X0) @ X1)) @ X2))))))))) (Tinteger.INT_REM_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_neg @ X0)) @ X1)) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_rem @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_rem @ X0) @ X1))))))))) (Tinteger.INT_REM_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X0) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_REM0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Tinteger.INT_REM_COMMON_FACTOR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ ((cHOL4.integer.int_mul @ X1) @ X0)) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tinteger.INT_REM_EQ0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X1) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_mul @ X2) @ X0))))))))))) (Tinteger.INT_MUL_QUOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ ((cHOL4.integer.int_mul @ X2) @ X0)) @ X1)) @ ((cHOL4.integer.int_mul @ X2) @ ((cHOL4.integer.int_quot @ X0) @ X1))))))))))) (Tinteger.INT_REM_EQ_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_sub @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_mod @ X0) @ X1))))))))) (Tinteger.INT_DIVIDES_MOD0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X1) @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (Tinteger.INT_DIVIDES_0,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_divides @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (Tinteger.INT_DIVIDES_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tinteger.INT_DIVIDES_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.integer.int_divides @ X0) @ X0)))) (Tinteger.INT_DIVIDES_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.integer.int_divides @ X1) @ X2))) @ ((cHOL4.integer.int_divides @ X0) @ X2))))))))) (Tinteger.INT_DIVIDES_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_mul @ X0) @ X1))) @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_mul @ X1) @ X0)))))))) (Tinteger.INT_DIVIDES_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_mul @ X1) @ X2)))))))))) (Tinteger.INT_DIVIDES_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_mul @ X2) @ X1)))))))))) (Tinteger.INT_DIVIDES_MUL_BOTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))) @ ((cHOL4.integer.int_divides @ X1) @ X2)))))))))) (Tinteger.INT_DIVIDES_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_add @ X1) @ X2))) @ ((cHOL4.integer.int_divides @ X0) @ X2)))))))))) (Tinteger.INT_DIVIDES_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_add @ X2) @ X1))) @ ((cHOL4.integer.int_divides @ X0) @ X2)))))))))) (Tinteger.INT_DIVIDES_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ (cHOL4.integer.int_neg @ X1))) @ ((cHOL4.integer.int_divides @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_neg @ X0)) @ X1)) @ ((cHOL4.integer.int_divides @ X0) @ X1)))))))) (Tinteger.INT_DIVIDES_LSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_sub @ X1) @ X2))) @ ((cHOL4.integer.int_divides @ X0) @ X2)))))))))) (Tinteger.INT_DIVIDES_RSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_divides @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X0) @ ((cHOL4.integer.int_sub @ X2) @ X1))) @ ((cHOL4.integer.int_divides @ X0) @ X2)))))))))) (Tinteger.INT_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_of_num @ X0)) @ X1)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.EXP @ X0) @ X1)))))))) (Tinteger.INT_EXP_EQ0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))))) (Tinteger.INT_MUL_SIGN_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mul @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)))))))))) (Tinteger.INT_EXP_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ X0)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.EXP @ X1) @ X0))))) @ ((cHOL4.min.==> @ (cHOL4.arithmetic.ODD @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.EXP @ X1) @ X0))))))))))) (Tinteger.INT_EXP_ADD_EXPONENTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_exp @ X2) @ X0)) @ ((cHOL4.integer.int_exp @ X2) @ X1))) @ ((cHOL4.integer.int_exp @ X2) @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))))) (Tinteger.INT_EXP_MULTIPLY_EXPONENTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ ((cHOL4.integer.int_exp @ X2) @ X1)) @ X0)) @ ((cHOL4.integer.int_exp @ X2) @ ((cHOL4.arithmetic.* @ X1) @ X0)))))))))) (Tinteger.INT_EXP_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ ((cHOL4.integer.int_exp @ X2) @ X0)) @ ((cHOL4.integer.int_exp @ X2) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (Tinteger.INT_EXP_SUBTRACT_EXPONENTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_exp @ X2) @ X0)) @ ((cHOL4.integer.int_exp @ X2) @ X1))) @ ((cHOL4.integer.int_exp @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X1))))))))))) (Tinteger.INT_MIN_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X0) @ ((cHOL4.integer.int_min @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X0) @ X2)))))))))) (Tinteger.INT_MAX_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_max @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ X2)) @ ((cHOL4.integer.int_lt @ X1) @ X2)))))))))) (Tinteger.INT_MIN_NUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_min @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MIN @ X0) @ X1)))))))) (Tinteger.INT_MAX_NUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_max @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MAX @ X0) @ X1)))))))) (Tinteger.INT_LT_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))) @ ((cHOL4.integer.int_lt @ X1) @ X2)))))))))) (Tinteger.INT_LE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.integer.int_mul @ X0) @ X2))) @ ((cHOL4.integer.int_le @ X1) @ X2)))))))))) (Tinteger.INFINITE_INT_UNIV,(cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) (Tinteger.INT_ADD_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X1) @ X2))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X2) @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X2) @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.- @ X1) @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X2)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))))))))) (Tinteger.INT_ADD_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X2)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X2))))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X1) @ X2)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X2) @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X2) @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X1) @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X2))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))))))))))))) (Tinteger.INT_SUB_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X0) @ X1)) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_neg @ X1)))))))) (Tinteger.INT_SUB_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.integer.int_neg @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))))))))))))))) (Tinteger.INT_MUL_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ X2)) @ X3)) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_mul @ X2) @ X3)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X2) @ (cHOL4.integer.int_neg @ X3))) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_mul @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X2))) @ X2))))))) (Tinteger.INT_MUL_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.* @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.* @ X0) @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.* @ X0) @ X1)))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))))))))))) (Tinteger.INT_DIV_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ X0) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ X2) @ (cHOL4.integer.int_neg @ X3))) @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_neg @ X2)) @ X3)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X4)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X4))) @ X4)))))))) (Tinteger.INT_DIV_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_div @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))))))))))))))))) (Tinteger.INT_QUOT_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ X0) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_neg @ X2)) @ X3)) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_quot @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ X2) @ (cHOL4.integer.int_neg @ X3))) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_quot @ X2) @ X3)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X4)) @ (cHOL4.integer.int_of_num @ X5))) @ ((cHOL4.min.= @ X4) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X6)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X6) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X6))) @ X6)))))))) (Tinteger.INT_QUOT_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_quot @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.DIV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))))))))))))))))) (Tinteger.INT_MOD_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ X0) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X2) @ (cHOL4.integer.int_neg @ X3))) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_neg @ X2)) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X4))) @ X4)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X4)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (Tinteger.INT_MOD_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))) @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_div @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mod @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))) @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_div @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))))))))))))))))) (Tinteger.INT_REM_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ X0) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_neg @ X2)) @ X3)) @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_rem @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ X2) @ (cHOL4.integer.int_neg @ X3))) @ ((cHOL4.integer.int_rem @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_neg @ X4))) @ X4)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X5)) @ (cHOL4.integer.int_of_num @ X6))) @ ((cHOL4.min.= @ X5) @ X6))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X4)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X4) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (Tinteger.INT_REM_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_rem @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))))))))))))))))) (Tinteger.INT_EXP_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ X0) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_of_num @ X1)) @ X2)) @ (cHOL4.integer.int_of_num @ ((cHOL4.arithmetic.EXP @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))))))))))))))) (Tinteger.INT_EXP_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ X2) @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_exp @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.arithmetic.BIT2 @ X1))))))))))))))) (Tinteger.INT_LT_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))))))))))))) (Tinteger.INT_LE_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tinteger.INT_LE_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))))))))))))))) (Tinteger.INT_GT_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ X1) @ X0))))))) (Tinteger.INT_GT_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))))) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))))))))))))) (Tinteger.INT_GE_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ X0) @ X1)) @ ((cHOL4.integer.int_le @ X1) @ X0))))))) (Tinteger.INT_GE_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))))) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_ge @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))))) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))))))))))))))) (Tinteger.INT_EQ_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ X2)) @ (cHOL4.integer.int_neg @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))))))))) (Tinteger.INT_EQ_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.min.= @ X0) @ X1))))))))))))))))))))) (Tinteger.INT_DIVIDES_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ X2) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_divides @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.num.0)))))))))))))))))))) (Tintegral.integrable_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3))))))))))) (Tintegral.integral_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.min.|at| @ (^[X3]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3))))))))))) (Tintegral.SUM_SPLIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X1)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X3)) @ X1))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X3))) @ X1))))))))))) (Tintegral.DIVISION_APPEND_EXPLICIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X6) @ X7))) @ ((cHOL4.transc.fine @ X3) @ ((cHOL4.pair.|comma| @ X6) @ X7)))))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ ((cHOL4.pair.|comma| @ (^[X8]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X8) @ (cHOL4.transc.dsize @ X4))) @ (X4 @ X8)) @ (X6 @ ((cHOL4.arithmetic.- @ X8) @ (cHOL4.transc.dsize @ X4)))))) @ (^[X8]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X8) @ (cHOL4.transc.dsize @ X4))) @ (X5 @ X8)) @ (X7 @ ((cHOL4.arithmetic.- @ X8) @ (cHOL4.transc.dsize @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X3) @ ((cHOL4.pair.|comma| @ (^[X8]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X8) @ (cHOL4.transc.dsize @ X4))) @ (X4 @ X8)) @ (X6 @ ((cHOL4.arithmetic.- @ X8) @ (cHOL4.transc.dsize @ X4)))))) @ (^[X8]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X8) @ (cHOL4.transc.dsize @ X4))) @ (X5 @ X8)) @ (X7 @ ((cHOL4.arithmetic.- @ X8) @ (cHOL4.transc.dsize @ X4)))))))) @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ (^[X8]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X8) @ (cHOL4.transc.dsize @ X4))) @ (X4 @ X8)) @ (X6 @ ((cHOL4.arithmetic.- @ X8) @ (cHOL4.transc.dsize @ X4)))))) @ (^[X8]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X8) @ (cHOL4.transc.dsize @ X4))) @ (X5 @ X8)) @ (X7 @ ((cHOL4.arithmetic.- @ X8) @ (cHOL4.transc.dsize @ X4))))))) @ X9)) @ ((cHOL4.realax.real_add @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X9)) @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X9))))))))))))))))))))))))) (Tintegral.DIVISION_APPEND_STRONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X6) @ X7))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X6) @ X7)))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ X10)) @ ((cHOL4.realax.real_add @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X10)) @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X10))))))))))))))))))))))))))))) (Tintegral.DIVISION_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X4) @ X5)))))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X6) @ X7))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X6) @ X7))))))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X8) @ X9))))))))))))))))) (Tintegral.INTEGRABLE_DINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))))))))) (Tintegral.DIVISION_BOUNDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ (X0 @ X3))) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ X2)))))))))))) (Tintegral.TDIV_BOUNDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ (X0 @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ (X1 @ X4))) @ ((cHOL4.real.real_lte @ (X1 @ X4)) @ X3)))))))))))))))) (Tintegral.TDIV_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.real.real_lte @ X2) @ X3))))))))))) (Tintegral.DINT_WRONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X1) @ X0)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3))))))))))) (Tintegral.DINT_INTEGRAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ X3))))))))))) (Tintegral.DINT_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0) @ X3)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X4]: (cHOL4.realax.real_neg @ (X0 @ X4)))) @ (cHOL4.realax.real_neg @ X3)))))))))))) (Tintegral.DINT_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X2]: (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Tintegral.DINT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X4)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X5))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X6]: ((cHOL4.realax.real_add @ (X0 @ X6)) @ (X1 @ X6)))) @ ((cHOL4.realax.real_add @ X4) @ X5)))))))))))))))) (Tintegral.DINT_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X4)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X5))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X6]: ((cHOL4.real.real_sub @ (X0 @ X6)) @ (X1 @ X6)))) @ ((cHOL4.real.real_sub @ X4) @ X5)))))))))))))))) (Tintegral.DSIZE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.transc.dsize @ X2))) @ (^[X3]: ((cHOL4.real.real_sub @ (X2 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3))))) @ ((cHOL4.real.real_sub @ X1) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tintegral.DINT_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X3]: X2)) @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.real.real_sub @ X1) @ X0)))))))))) (Tintegral.DINT_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0) @ X4)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X5]: ((cHOL4.realax.real_mul @ X3) @ (X0 @ X5)))) @ ((cHOL4.realax.real_mul @ X3) @ X4)))))))))))))) (Tintegral.DINT_LINEAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X2) @ X6)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X3) @ X7))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (^[X8]: ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X1) @ (X2 @ X8))) @ ((cHOL4.realax.real_mul @ X0) @ (X3 @ X8))))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X1) @ X6)) @ ((cHOL4.realax.real_mul @ X0) @ X7))))))))))))))))))))) (Tintegral.LT,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ cHOL4.num.0)) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))) (Tintegral.LE_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ cHOL4.num.0) @ X0)))) (Tintegral.LT_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))))) (Tintegral.EQ_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tintegral.LE_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tintegral.LT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tintegral.REAL_LT_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X2) @ ((cHOL4.real.min @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X2) @ X0)) @ ((cHOL4.realax.real_lt @ X2) @ X1)))))))))) (Tintegral.REAL_LE_RMUL1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))))))))) (Tintegral.REAL_LE_LMUL1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Tintegral.INTEGRAL_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X3))) @ ((cHOL4.real.real_lte @ (X0 @ X6)) @ (X1 @ X6))))))))) @ ((cHOL4.real.real_lte @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))))))) (Tintegral.DINT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X3))) @ ((cHOL4.real.real_lte @ (X0 @ X6)) @ (X1 @ X6))))))))) @ ((cHOL4.real.real_lte @ X4) @ X5))))))))))))))) (Tintegral.DINT_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0) @ X3)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X5]: (cHOL4.real.abs @ (X0 @ X5)))) @ X4)))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X3)) @ X4))))))))))))) (Tintegral.DINT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X3))) @ ((cHOL4.min.= @ (X0 @ X6)) @ (X1 @ X6))))))))) @ ((cHOL4.min.= @ X4) @ X5))))))))))))))) (Tintegral.INTEGRAL_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X4)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X5)) @ ((cHOL4.real.real_lte @ X5) @ X3))) @ ((cHOL4.min.= @ (X0 @ X5)) @ (X1 @ X5))))))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X4))))))))))))) (Tintegral.INTEGRATION_BY_PARTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X5))) @ (((cHOL4.lim.diffl @ X0) @ (X2 @ X6)) @ X6))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X5))) @ (((cHOL4.lim.diffl @ X1) @ (X3 @ X6)) @ X6))))))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (^[X6]: ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (X2 @ X6)) @ (X1 @ X6))) @ ((cHOL4.realax.real_mul @ (X0 @ X6)) @ (X3 @ X6))))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ (X0 @ X5)) @ (X1 @ X5))) @ ((cHOL4.realax.real_mul @ (X0 @ X4)) @ (X1 @ X4)))))))))))))))))) (Tintegral.DIVISION_LE_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ (X0 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))))))))) (Tintegral.DIVISION_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X4)) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ (X0 @ X4))))))))))))))) (Tintegral.DIVISION_MONO_LE_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ (X0 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))))))))) (Tintegral.DIVISION_DSIZE_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3)))) @ ((cHOL4.arithmetic.<= @ (cHOL4.transc.dsize @ X2)) @ X3))))))))))) (Tintegral.DIVISION_DSIZE_GE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_lt @ (X2 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3))))) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X3)) @ (cHOL4.transc.dsize @ X2)))))))))))) (Tintegral.DIVISION_DSIZE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (X2 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3)))) @ ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X3)))) @ (X2 @ (cHOL4.num.SUC @ X3)))))) @ ((cHOL4.min.= @ (cHOL4.transc.dsize @ X2)) @ (cHOL4.num.SUC @ X3)))))))))))) (Tintegral.DIVISION_DSIZE_EQ_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.realax.real_lt @ (X2 @ X4)) @ (X2 @ (cHOL4.num.SUC @ X4))))))))) @ ((cHOL4.min.= @ (cHOL4.transc.dsize @ X2)) @ X3))))))))))) (Tintegral.num_MAX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X2)))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ X3)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ X3))))))))))) (Tintegral.DIVISION_INTERMEDIATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ (cHOL4.transc.dsize @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ (X0 @ (cHOL4.num.SUC @ X4))))))))))))))))) (Tintegral.DINT_COMBINE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0) @ X4)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X5))))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0) @ ((cHOL4.realax.real_add @ X4) @ X5)))))))))))))))) (Tintegral.SUM_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.+ @ X1) @ X0)))) @ ((cHOL4.min.= @ (X2 @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tintegral.DINT_DELTA_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Tintegral.DINT_DELTA_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Tintegral.DINT_DELTA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X2)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Tintegral.DINT_POINT_SPIKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X6) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X6) @ X4))))) @ ((cHOL4.min.= @ (X0 @ X6)) @ (X1 @ X6)))))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X5))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X5))))))))))))))) (Tintegral.DINT_FINITE_SPIKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X6) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X6) @ X4))))) @ ((cHOL4.min.= @ (X0 @ X6)) @ (X1 @ X6)))))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0) @ X5)))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ X5))))))))))))))) (Tintegral.REAL_POW_LBOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ X0))) @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X1)))))))) (Tintegral.REAL_ARCH_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.real.pow @ X0) @ X2)))))))))) (Tintegral.REAL_ARCH_POW2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))))))) (Tintegral.REAL_POW_LE_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X1) @ X0)))))))) (Tintegral.REAL_POW_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.pow @ X2) @ X0)) @ ((cHOL4.real.pow @ X2) @ X1)))))))))) (Tintegral.REAL_LE_INV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.realax.inv @ X1)) @ (cHOL4.realax.inv @ X0)))))))) (Tintegral.GAUGE_MIN_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.transc.gauge @ X0) @ (X1 @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.transc.gauge @ X0) @ X4)) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.transc.fine @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.transc.fine @ (X1 @ X3)) @ ((cHOL4.pair.|comma| @ X5) @ X6))))))))))))))))))))) (Tintegral.INTEGRABLE_CAUCHY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.transc.gauge @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X5)) @ ((cHOL4.real.real_lte @ X5) @ X2)))) @ X4)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X4) @ ((cHOL4.pair.|comma| @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ ((cHOL4.transc.fine @ X4) @ ((cHOL4.pair.|comma| @ X8) @ X9)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X0)) @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ X0)))) @ X3)))))))))))))))))))))))) (Tintegral.SUM_DIFFS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X3]: ((cHOL4.real.real_sub @ (X0 @ (cHOL4.num.SUC @ X3))) @ (X0 @ X3))))) @ ((cHOL4.real.real_sub @ (X0 @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ (X0 @ X1)))))))))) (Tintegral.RSUM_BOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (X5 @ X6))) @ X4)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X5))) @ ((cHOL4.realax.real_mul @ X4) @ ((cHOL4.real.real_sub @ X1) @ X0))))))))))))))))) (Tintegral.RSUM_DIFF_BOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X7)) @ ((cHOL4.real.real_lte @ X7) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X5 @ X7)) @ (X6 @ X7)))) @ X4)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X5)) @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X6)))) @ ((cHOL4.realax.real_mul @ X4) @ ((cHOL4.real.real_sub @ X1) @ X0))))))))))))))))))) (Tintegral.INTEGRABLE_LIMIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X5)) @ ((cHOL4.real.real_lte @ X5) @ X2))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X5)) @ (X4 @ X5)))) @ X3))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X4)))))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))))))))) (Tintegral.INTEGRABLE_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X3]: X2))))))))) (Tintegral.INTEGRABLE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X4]: ((cHOL4.realax.real_add @ (X0 @ X4)) @ (X1 @ X4)))))))))))))) (Tintegral.INTEGRABLE_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X4]: ((cHOL4.realax.real_mul @ X3) @ (X0 @ X4)))))))))))))) (Tintegral.INTEGRABLE_COMBINE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0))))))))))) (Tintegral.INTEGRABLE_POINT_SPIKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X5) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ X4))))) @ ((cHOL4.min.= @ (X0 @ X5)) @ (X1 @ X5)))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1))))))))))))) (Tintegral.SUP_INTERVAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ (X0 @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X2)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X5) @ X4)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.realax.real_lt @ X5) @ X3))))))))))))))))))))) (Tintegral.BOLZANO_LEMMA_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X3))))) @ ((X0 @ X1) @ X3))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X2)) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ X2) @ X1)) @ X5)))) @ ((X0 @ X1) @ X2))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((X0 @ X1) @ X2)))))))))) (Tintegral.CONT_UNIFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X6) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X3) @ X6))) @ X5)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X3)) @ (X0 @ X6)))) @ X4)))))))))))))))))))) (Tintegral.INTEGRABLE_CONTINUOUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))))))))) (Tintegral.INTEGRABLE_SPLIT_SIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.transc.gauge @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X7)) @ ((cHOL4.real.real_lte @ X7) @ X2)))) @ X6)) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X6) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ ((cHOL4.pair.|comma| @ X10) @ X11))) @ ((cHOL4.transc.fine @ X6) @ ((cHOL4.pair.|comma| @ X10) @ X11)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X8) @ X9)) @ X0)) @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X10) @ X11)) @ X0))) @ X4))) @ X5)))))))))))))))))))))))))))) (Tintegral.INTEGRABLE_SUBINTERVAL_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0))))))))))) (Tintegral.INTEGRABLE_SUBINTERVAL_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X0))))))))))) (Tintegral.INTEGRABLE_SUBINTERVAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X2)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X0))))))))))))) (Tintegral.INTEGRAL_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X2]: (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Tintegral.INTEGRAL_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X3]: X2))) @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.real.real_sub @ X1) @ X0))))))))))) (Tintegral.INTEGRAL_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X4]: ((cHOL4.realax.real_mul @ X1) @ (X0 @ X4))))) @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0))))))))))))) (Tintegral.INTEGRAL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X4]: ((cHOL4.realax.real_add @ (X0 @ X4)) @ (X1 @ X4))))) @ ((cHOL4.realax.real_add @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1))))))))))))) (Tintegral.INTEGRAL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X4]: ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X1 @ X4))))) @ ((cHOL4.real.real_sub @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1))))))))))))) (Tintegral.INTEGRAL_BY_PARTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X5))) @ (((cHOL4.lim.diffl @ X0) @ (X2 @ X6)) @ X6))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X5))) @ (((cHOL4.lim.diffl @ X1) @ (X3 @ X6)) @ X6))))) @ ((cHOL4.bool./\ @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (^[X6]: ((cHOL4.realax.real_mul @ (X2 @ X6)) @ (X1 @ X6))))) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (^[X6]: ((cHOL4.realax.real_mul @ (X0 @ X6)) @ (X3 @ X6))))))))) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (^[X6]: ((cHOL4.realax.real_mul @ (X0 @ X6)) @ (X3 @ X6))))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ (X0 @ X5)) @ (X1 @ X5))) @ ((cHOL4.realax.real_mul @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (^[X6]: ((cHOL4.realax.real_mul @ (X2 @ X6)) @ (X1 @ X6)))))))))))))))))))) (Tintegral.INTEGRAL_COMBINE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.integral.integrable @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0)) @ ((cHOL4.realax.real_add @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0))))))))))))) (Tintegral.INTEGRAL_MVT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.integral.integral @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.realax.real_mul @ (X0 @ X3)) @ ((cHOL4.real.real_sub @ X2) @ X1))))))))))))))) (TintExtension.SGN_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (TintExtension.INT_SGN_TOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (TintExtension.INT_SGN_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ ((cHOL4.integer.int_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.intExtension.SGN @ X1)))))))) (TintExtension.INT_SGN_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X1)) @ X3)) @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ ((cHOL4.integer.int_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ X2) @ X3))))))))))))) (TintExtension.INT_SGN_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_gt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (TintExtension.INT_NOT0_SGNNOT0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (TintExtension.INT_ABS_CALCULATE_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.integer.ABS @ X0)) @ X0))))) (TintExtension.INT_ABS_CALCULATE_0,((cHOL4.min.= @ (cHOL4.integer.ABS @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) (TintExtension.INT_ABS_CALCULATE_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_neg @ X0)))))) (TintExtension.INT_GT_RMUL_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ X0) @ X1)) @ ((cHOL4.integer.int_gt @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2))))))))))) (TintExtension.INT_LT_RMUL_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ X0) @ X1)) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2))))))))))) (TintExtension.INT_EQ_RMUL_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X2)) @ ((cHOL4.integer.int_mul @ X1) @ X2))))))))))) (TintExtension.LESS_IMP_NOT_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (TintExtension.INT_MUL_POS_SIGN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_mul @ X0) @ X1))))))))) (TintExtension.INT_NE_IMP_LTGT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (TintExtension.INT_NOTGT_IMP_EQLT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)))))) (TintExtension.INT_NO_ZERODIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (TintExtension.INT_NOTPOS0_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ X0))))))) (TintExtension.INT_NOT0_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))))) (TintExtension.INT_GT0_IMP_NOT0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (TintExtension.INT_NOTLTEQ_GT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)))))) (TintExtension.INT_ABS_NOT0POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.ABS @ X0)))))) (TintExtension.INT_SGN_NOTPOSNEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) (TintExtension.INT_SGN_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)))) @ X1)))))) (TintExtension.INT_LT_ADD_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ X1) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_add @ X0) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))))) (Tintreal.real_of_int,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.intreal.real_of_int @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.integer.int_lt @ X0) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.integer.Num @ (cHOL4.integer.int_neg @ X0))))) @ (cHOL4.real.real_of_num @ (cHOL4.integer.Num @ X0))))))) (Tintreal.INT_FLOOR_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.intreal.INT_FLOOR @ X0)) @ (cHOL4.integer.LEAST_INT @ (^[X1]: ((cHOL4.real.real_gt @ (cHOL4.intreal.real_of_int @ ((cHOL4.integer.int_add @ X1) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))))))) (Tintreal.INT_CEILING_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.intreal.INT_CEILING @ X0)) @ (cHOL4.integer.LEAST_INT @ (^[X1]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.intreal.real_of_int @ X1)))))))) (Tintreal.is_int_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.intreal.is_int @ X0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.intreal.real_of_int @ (cHOL4.intreal.INT_FLOOR @ X0))))))) (Tintto.intOrd,((cHOL4.min.= @ cHOL4.intto.intOrd) @ (cHOL4.toto.TO_of_LinearOrder @ cHOL4.integer.int_lt))) (Tintto.intto,((cHOL4.min.= @ cHOL4.intto.intto) @ (cHOL4.toto.TO @ cHOL4.intto.intOrd))) (Tintto.apintto_thm,((cHOL4.min.= @ (cHOL4.toto.apto @ cHOL4.intto.intto)) @ cHOL4.intto.intOrd)) (Tintto.pos_pos_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X1))) @ ((cHOL4.toto.numOrd @ X0) @ X1))))))) (Tintto.neg_neg_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1)))) @ ((cHOL4.toto.numOrd @ X1) @ X0))))))) (Tintto.BIT1_nz,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0))))) (Tintto.BIT2_nz,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ cHOL4.num.0))))) (Tintto.neg_lt_BIT1_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT1 @ X1)))) @ cHOL4.toto.LESS)))))) (Tintto.neg_lt_BIT2_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT2 @ X1)))) @ cHOL4.toto.LESS)))))) (Tintto.neg_BIT1_lt_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.integer.int_of_num @ X1))) @ cHOL4.toto.LESS)))))) (Tintto.neg_BIT2_lt_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.integer.int_of_num @ X1))) @ cHOL4.toto.LESS)))))) (Tintto.neg_ZERO_eq_ZERO_thm,((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ cHOL4.toto.EQUAL)) (Tintto.BIT1_gt_neg_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1)))) @ cHOL4.toto.GREATER)))))) (Tintto.BIT2_gt_neg_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X1)))) @ cHOL4.toto.GREATER)))))) (Tintto.gt_neg_BIT1_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT1 @ X1))))) @ cHOL4.toto.GREATER)))))) (Tintto.gt_neg_BIT2_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.BIT2 @ X1))))) @ cHOL4.toto.GREATER)))))) (Tintto.ZERO_eq_neg_ZERO_thm,((cHOL4.min.= @ ((cHOL4.intto.intOrd @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ cHOL4.toto.EQUAL)) (Tlbtree.Lfrep_def,((cHOL4.min.= @ cHOL4.lbtree.Lfrep) @ (^[X0]: cHOL4.option.NONE))) (Tlbtree.Ndrep_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lbtree.Ndrep @ X0) @ X1) @ X2)) @ (^[X3]: (((cHOL4.list.list_CASE @ X3) @ (cHOL4.option.SOME @ X0)) @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ X4) @ (X1 @ X5)) @ (X2 @ X5)))))))))))))) (Tlbtree.is_lbtree_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.lbtree.is_lbtree @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (X1 @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lfrep)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.min.= @ X0) @ (((cHOL4.lbtree.Ndrep @ X2) @ X3) @ X4))))))))))))))) @ (X1 @ X0)))))))) (Tlbtree.lbtree_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.lbtree.is_lbtree) @ X0)))) (Tlbtree.lbtree_absrep,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.lbtree.lbtree_abs @ (cHOL4.lbtree.lbtree_rep @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.lbtree.is_lbtree @ X1)) @ ((cHOL4.min.= @ (cHOL4.lbtree.lbtree_rep @ (cHOL4.lbtree.lbtree_abs @ X1))) @ X1)))))) (Tlbtree.path_follow_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.lbtree.path_follow @ X0) @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.option.OPTION_MAP @ cHOL4.pair.FST) @ (X0 @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.lbtree.path_follow @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.option.option_CASE @ (X0 @ X1)) @ cHOL4.option.NONE) @ (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (((cHOL4.lbtree.path_follow @ X0) @ (((cHOL4.bool.COND @ X2) @ X7) @ X8)) @ X3)))))))))))))))))))) (Tlbtree.Lf_def,((cHOL4.min.= @ cHOL4.lbtree.Lf) @ (cHOL4.lbtree.lbtree_abs @ cHOL4.lbtree.Lfrep))) (Tlbtree.Nd_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lbtree.Nd @ X0) @ X1) @ X2)) @ (cHOL4.lbtree.lbtree_abs @ (((cHOL4.lbtree.Ndrep @ X0) @ (cHOL4.lbtree.lbtree_rep @ X1)) @ (cHOL4.lbtree.lbtree_rep @ X2))))))))))) (Tlbtree.lbtree_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lbtree.lbtree_case @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.lbtree.Lf)) @ X0) @ (((X1 @ (cHOL4.min.|at| @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X2) @ (((cHOL4.lbtree.Nd @ X3) @ X4) @ X5))))))))) @ (cHOL4.min.|at| @ (^[X4]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X2) @ (((cHOL4.lbtree.Nd @ X3) @ X4) @ X5))))))))) @ (cHOL4.min.|at| @ (^[X5]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X2) @ (((cHOL4.lbtree.Nd @ X3) @ X4) @ X5)))))))))))))))))) (Tlbtree.mem_def,((cHOL4.min.= @ cHOL4.lbtree.mem) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X0) @ X3) @ X4))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X5) @ X3) @ X4))) @ ((X2 @ X0) @ X3))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X5) @ X3) @ X4))) @ ((X2 @ X0) @ X4))))))))))) @ ((X2 @ X0) @ X1))))))) @ ((X2 @ X0) @ X1)))))))) (Tlbtree.map_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.lbtree.map @ X0) @ cHOL4.lbtree.Lf)) @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.lbtree.map @ X0) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3))) @ (((cHOL4.lbtree.Nd @ (X0 @ X1)) @ ((cHOL4.lbtree.map @ X0) @ X2)) @ ((cHOL4.lbtree.map @ X0) @ X3))))))))))))) (Tlbtree.finite_def,((cHOL4.min.= @ cHOL4.lbtree.finite) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (((cHOL4.lbtree.Nd @ X2) @ X3) @ X4))) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (X1 @ X4))))))))))) @ (X1 @ X0))))) @ (X1 @ X0))))))) (Tlbtree.bf_flatten_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.lbtree.bf_flatten @ cHOL4.list.NIL)) @ cHOL4.llist.LNIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.lbtree.bf_flatten @ ((cHOL4.list.CONS @ cHOL4.lbtree.Lf) @ X0))) @ (cHOL4.lbtree.bf_flatten @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.lbtree.bf_flatten @ ((cHOL4.list.CONS @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3)) @ X0))) @ ((cHOL4.llist.LCONS @ X1) @ (cHOL4.lbtree.bf_flatten @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))))))))))) (Tlbtree.depth_def,((cHOL4.min.= @ cHOL4.lbtree.depth) @ (^[X0]: (^[X1]: (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X0) @ X4) @ X5))) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X7) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.num.SUC @ X6))) @ (((X3 @ X0) @ X4) @ X6)))))))))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X7) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.num.SUC @ X6))) @ (((X3 @ X0) @ X5) @ X6)))))))))))))) @ (((X3 @ X0) @ X1) @ X2))))))))) @ (((X3 @ X0) @ X1) @ X2))))))))) (Tlbtree.mindepth_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lbtree.mindepth @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.lbtree.mem @ X0) @ X1)) @ (cHOL4.option.SOME @ (cHOL4.while.LEAST @ (^[X2]: (((cHOL4.lbtree.depth @ X0) @ X1) @ X2))))) @ cHOL4.option.NONE))))))) (Tlbtree.optmin_tupled_primitive_def,((cHOL4.min.= @ cHOL4.lbtree.optmin_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (((cHOL4.option.option_CASE @ X3) @ (((cHOL4.option.option_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.option.NONE)) @ (^[X5]: (cHOL4.combin.I @ (cHOL4.option.SOME @ X5))))) @ (^[X6]: (((cHOL4.option.option_CASE @ X4) @ (cHOL4.combin.I @ (cHOL4.option.SOME @ X6))) @ (^[X7]: (cHOL4.combin.I @ (cHOL4.option.SOME @ ((cHOL4.arithmetic.MIN @ X6) @ X7))))))))))))))) (Tlbtree.optmin_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lbtree.optmin @ X0) @ X1)) @ (cHOL4.lbtree.optmin_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tlbtree.is_mmindex_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.lbtree.is_mmindex @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ ((cHOL4.list.EL @ X2) @ X1))) @ (cHOL4.option.SOME @ X3))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (X0 @ ((cHOL4.list.EL @ X4) @ X1))) @ cHOL4.option.NONE)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ ((cHOL4.list.EL @ X4) @ X1))) @ (cHOL4.option.SOME @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X5)) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X2)) @ ((cHOL4.prim_rec.< @ X3) @ X5)))))))))))))))))))))) (Tlbtree.lbtree_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3)))))))))))) (Tlbtree.Lf_NOT_Nd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.lbtree.Lf) @ (((cHOL4.lbtree.Nd @ X2) @ X1) @ X0)))))))))) (Tlbtree.Nd_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.lbtree.Nd @ X5) @ X3) @ X1)) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.min.= @ X1) @ X0))))))))))))))))) (Tlbtree.lbtree_ue_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.?! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ (((cHOL4.option.option_CASE @ (X0 @ X2)) @ cHOL4.lbtree.Lf) @ (^[X3]: ((cHOL4.pair.pair_CASE @ X3) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: (((cHOL4.lbtree.Nd @ X4) @ (X1 @ X6)) @ (X1 @ X7)))))))))))))))))) (Tlbtree.lbtree_case_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.lbtree.lbtree_case @ X3) @ X2) @ cHOL4.lbtree.Lf)) @ X3)) @ ((cHOL4.min.= @ (((cHOL4.lbtree.lbtree_case @ X3) @ X2) @ (((cHOL4.lbtree.Nd @ X4) @ X1) @ X0))) @ (((X2 @ X4) @ X1) @ X0)))))))))))))) (Tlbtree.lbtree_bisimulation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X2 @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lf)) @ ((cHOL4.min.= @ X1) @ cHOL4.lbtree.Lf))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((X2 @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((X2 @ X6) @ X7)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (((cHOL4.lbtree.Nd @ X3) @ X4) @ X6))) @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X3) @ X5) @ X7)))))))))))))))))))))))))))))) (Tlbtree.lbtree_strong_bisimulation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X2 @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((X2 @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((X2 @ X6) @ X7)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (((cHOL4.lbtree.Nd @ X3) @ X4) @ X6))) @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X3) @ X5) @ X7)))))))))))))))))))))))))))))) (Tlbtree.mem_rules,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.lbtree.mem @ X0) @ (((cHOL4.lbtree.Nd @ X0) @ X1) @ X2))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.lbtree.mem @ X0) @ X1)) @ ((cHOL4.lbtree.mem @ X0) @ (((cHOL4.lbtree.Nd @ X3) @ X1) @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.lbtree.mem @ X0) @ X2)) @ ((cHOL4.lbtree.mem @ X0) @ (((cHOL4.lbtree.Nd @ X3) @ X1) @ X2)))))))))))))) (Tlbtree.mem_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X1) @ X3)) @ ((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.lbtree.mem @ X5) @ X6)) @ ((X0 @ X5) @ X6)))))))))) (Tlbtree.mem_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lbtree.mem @ X1) @ X2)) @ ((X0 @ X1) @ X2))) @ ((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lbtree.mem @ X1) @ X3)) @ ((X0 @ X1) @ X3))) @ ((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.lbtree.mem @ X5) @ X6)) @ ((X0 @ X5) @ X6)))))))))) (Tlbtree.mem_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lbtree.mem @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X0) @ X2) @ X3))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X3))) @ ((cHOL4.lbtree.mem @ X0) @ X2))))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X4) @ X2) @ X3))) @ ((cHOL4.lbtree.mem @ X0) @ X3)))))))))))))))) (Tlbtree.mem_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.lbtree.mem @ X3) @ cHOL4.lbtree.Lf)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.lbtree.mem @ X3) @ (((cHOL4.lbtree.Nd @ X2) @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.lbtree.mem @ X3) @ X1)) @ ((cHOL4.lbtree.mem @ X3) @ X0)))))))))))))) (Tlbtree.map_eq_Lf,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.lbtree.map @ X1) @ X0)) @ cHOL4.lbtree.Lf)) @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lf))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.lbtree.Lf) @ ((cHOL4.lbtree.map @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lf)))))))) (Tlbtree.map_eq_Nd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.lbtree.map @ X3) @ X2)) @ (((cHOL4.lbtree.Nd @ X4) @ X1) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (((cHOL4.lbtree.Nd @ X5) @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ (X3 @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.lbtree.map @ X3) @ X6))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.lbtree.map @ X3) @ X7))))))))))))))))))))))) (Tlbtree.finite_rules,((cHOL4.bool./\ @ (cHOL4.lbtree.finite @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.lbtree.finite @ X1)) @ (cHOL4.lbtree.finite @ X2))) @ (cHOL4.lbtree.finite @ (((cHOL4.lbtree.Nd @ X0) @ X1) @ X2))))))))))) (Tlbtree.finite_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X2)) @ (X0 @ X3))) @ (X0 @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.lbtree.finite @ X4)) @ (X0 @ X4)))))))) (Tlbtree.finite_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.lbtree.finite @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.lbtree.finite @ X3)) @ (X0 @ X3))))) @ (X0 @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.lbtree.finite @ X4)) @ (X0 @ X4)))))))) (Tlbtree.finite_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.lbtree.finite @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.lbtree.Lf)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.lbtree.finite @ X2)) @ (cHOL4.lbtree.finite @ X3)))))))))))))) (Tlbtree.finite_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.lbtree.finite @ cHOL4.lbtree.Lf)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ (cHOL4.lbtree.finite @ (((cHOL4.lbtree.Nd @ X2) @ X1) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.lbtree.finite @ X1)) @ (cHOL4.lbtree.finite @ X0))))))))))) (Tlbtree.finite_map,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.lbtree.finite @ ((cHOL4.lbtree.map @ X1) @ X0))) @ (cHOL4.lbtree.finite @ X0))))))) (Tlbtree.bf_flatten_eq_lnil,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.lbtree.bf_flatten @ X0)) @ cHOL4.llist.LNIL)) @ ((cHOL4.list.EVERY @ (cHOL4.min.= @ cHOL4.lbtree.Lf)) @ X0))))) (Tlbtree.bf_flatten_append,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ (cHOL4.min.= @ cHOL4.lbtree.Lf)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.lbtree.bf_flatten @ ((cHOL4.list.APPEND @ X1) @ X0))) @ (cHOL4.lbtree.bf_flatten @ X0)))))))) (Tlbtree.EXISTS_FIRST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X2)) @ (X0 @ X3))))))))))))))) (Tlbtree.exists_bf_flatten,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.llist.exists @ (cHOL4.min.= @ X0)) @ (cHOL4.lbtree.bf_flatten @ X1))) @ ((cHOL4.list.EXISTS @ (cHOL4.lbtree.mem @ X0)) @ X1))))))) (Tlbtree.depth_rules,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((cHOL4.lbtree.depth @ X0) @ (((cHOL4.lbtree.Nd @ X0) @ X1) @ X2)) @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.lbtree.depth @ X0) @ X1) @ X3)) @ (((cHOL4.lbtree.depth @ X0) @ (((cHOL4.lbtree.Nd @ X4) @ X1) @ X2)) @ (cHOL4.num.SUC @ X3)))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.lbtree.depth @ X0) @ X2) @ X3)) @ (((cHOL4.lbtree.depth @ X0) @ (((cHOL4.lbtree.Nd @ X4) @ X1) @ X2)) @ (cHOL4.num.SUC @ X3)))))))))))))))) (Tlbtree.depth_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3)) @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X4)) @ (((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X5) @ X2) @ X3)) @ (cHOL4.num.SUC @ X4)))))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((X0 @ X1) @ X3) @ X4)) @ (((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X5) @ X2) @ X3)) @ (cHOL4.num.SUC @ X4)))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.lbtree.depth @ X6) @ X7) @ X8)) @ (((X0 @ X6) @ X7) @ X8)))))))))))) (Tlbtree.depth_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X1) @ X2) @ X3)) @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lbtree.depth @ X1) @ X2) @ X4)) @ (((X0 @ X1) @ X2) @ X4))) @ (((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X5) @ X2) @ X3)) @ (cHOL4.num.SUC @ X4)))))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lbtree.depth @ X1) @ X3) @ X4)) @ (((X0 @ X1) @ X3) @ X4))) @ (((X0 @ X1) @ (((cHOL4.lbtree.Nd @ X5) @ X2) @ X3)) @ (cHOL4.num.SUC @ X4)))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.lbtree.depth @ X6) @ X7) @ X8)) @ (((X0 @ X6) @ X7) @ X8)))))))))))) (Tlbtree.depth_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lbtree.depth @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X0) @ X3) @ X4))) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X6) @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.num.SUC @ X5))) @ (((cHOL4.lbtree.depth @ X0) @ X3) @ X5)))))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.lbtree.Nd @ X6) @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.num.SUC @ X5))) @ (((cHOL4.lbtree.depth @ X0) @ X4) @ X5))))))))))))))))))))) (Tlbtree.mem_depth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.lbtree.mem @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.lbtree.depth @ X0) @ X1) @ X2))))))))) (Tlbtree.depth_mem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.lbtree.depth @ X0) @ X1) @ X2)) @ ((cHOL4.lbtree.mem @ X0) @ X1))))))))) (Tlbtree.optmin_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.option.NONE) @ cHOL4.option.NONE)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.option.SOME @ X1)) @ cHOL4.option.NONE)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X0 @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X2))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.option.SOME @ X1)) @ (cHOL4.option.SOME @ X2)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tlbtree.optmin_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.lbtree.optmin @ cHOL4.option.NONE) @ cHOL4.option.NONE)) @ cHOL4.option.NONE)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.lbtree.optmin @ (cHOL4.option.SOME @ X1)) @ cHOL4.option.NONE)) @ (cHOL4.option.SOME @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.lbtree.optmin @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X0))) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ ((cHOL4.lbtree.optmin @ (cHOL4.option.SOME @ X1)) @ (cHOL4.option.SOME @ X0))) @ (cHOL4.option.SOME @ ((cHOL4.arithmetic.MIN @ X1) @ X0))))))))))) (Tlbtree.mindepth_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.lbtree.mindepth @ X0) @ cHOL4.lbtree.Lf)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.lbtree.mindepth @ X0) @ (((cHOL4.lbtree.Nd @ X3) @ X2) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X3)) @ (cHOL4.option.SOME @ cHOL4.num.0)) @ ((cHOL4.option.OPTION_MAP @ cHOL4.num.SUC) @ ((cHOL4.lbtree.optmin @ ((cHOL4.lbtree.mindepth @ X0) @ X2)) @ ((cHOL4.lbtree.mindepth @ X0) @ X1))))))))))))))) (Tlbtree.mem_mindepth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.lbtree.mem @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.lbtree.mindepth @ X0) @ X1)) @ (cHOL4.option.SOME @ X2)))))))))) (Tlbtree.mindepth_depth,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.lbtree.mindepth @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ (((cHOL4.lbtree.depth @ X0) @ X1) @ X2))))))))) (Tlbtree.mmindex_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.option.SOME @ X3)))))) @ X0)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((((cHOL4.lbtree.is_mmindex @ X1) @ X0) @ X4) @ X5))))))))))) (Tlbtree.mmindex_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((((cHOL4.lbtree.is_mmindex @ X3) @ X1) @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.lbtree.is_mmindex @ X3) @ X1) @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X2)) @ ((cHOL4.min.= @ X5) @ X0))))))))))))))))) (Tlbtree.mem_bf_flatten,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.exists @ (cHOL4.min.= @ X0)) @ (cHOL4.lbtree.bf_flatten @ X1))) @ ((cHOL4.list.EXISTS @ (cHOL4.lbtree.mem @ X0)) @ X1))))))) (Tlebesgue.pos_simple_fn_integral_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.extreal.Normal @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((cHOL4.realax.real_mul @ (X3 @ X4)) @ ((cHOL4.measure.measure @ X0) @ (X2 @ X4))))) @ X1)))))))))))) (Tlebesgue.psfs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.psfs @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)))))))))))))) (Tlebesgue.psfis_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.psfis @ X0) @ X1)) @ ((cHOL4.pred_set.IMAGE @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4))))))) @ ((cHOL4.lebesgue.psfs @ X0) @ X1)))))))) (Tlebesgue.pos_fn_integral_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ (cHOL4.extreal.extreal_sup @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.lebesgue.psfis @ X0) @ X3))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (X3 @ X4)) @ (X1 @ X4))))))))))))))))) (Tlebesgue.integral_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.fn_plus @ X1))) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.fn_minus @ X1))))))))) (Tlebesgue.integrable_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.fn_plus @ X1))) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.fn_minus @ X1))) @ cHOL4.extreal.PosInf)))))))))) (Tlebesgue.finite_space_integral_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.finite_space_integral @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.measure.m_space @ X0))))))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.measure.m_space @ X0))))))))) (Tlebesgue.prod_measure_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.prod_measure @ X0) @ X1)) @ (^[X2]: (cHOL4.extreal.real @ ((cHOL4.lebesgue.integral @ X0) @ (^[X3]: (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X1) @ ((cHOL4.util_prob.PREIMAGE @ (^[X4]: ((cHOL4.pair.|comma| @ X3) @ X4))) @ X2))))))))))))) (Tlebesgue.prod_measure_space_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.prod_measure_space @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.util_prob.prod_sets @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.lebesgue.prod_measure @ X0) @ X1))))))))) (Tlebesgue.prod_sets3_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lebesgue.prod_sets3 @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ X3) @ ((cHOL4.pred_set.CROSS @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.bool.IN @ X5) @ X2)))))))))))))))))) (Tlebesgue.prod_measure3_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lebesgue.prod_measure3 @ X0) @ X1) @ X2)) @ ((cHOL4.lebesgue.prod_measure @ X0) @ ((cHOL4.lebesgue.prod_measure_space @ X1) @ X2)))))))))) (Tlebesgue.prod_measure_space3_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lebesgue.prod_measure_space3 @ X0) @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X2)))) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X2)))) @ (((cHOL4.lebesgue.prod_sets3 @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.measurable_sets @ X2))))) @ (((cHOL4.lebesgue.prod_measure3 @ X0) @ X1) @ X2))))))))))) (Tlebesgue.fn_seq_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.fn_seq @ X0) @ X1)) @ (^[X2]: (^[X3]: ((cHOL4.extreal.extreal_add @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X4)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ ((cHOL4.measure.indicator_fn @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X4)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X1 @ X3)) @ ((cHOL4.extreal.extreal_div @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.extreal_of_num @ X4)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))))))))) @ X3)))) @ (cHOL4.pred_set.count @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ ((cHOL4.extreal.extreal_mul @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.measure.indicator_fn @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ (X1 @ X3))))))) @ X3))))))))))) (Tlebesgue.fn_seq_integral_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.fn_seq_integral @ X0) @ X1)) @ (^[X2]: (cHOL4.extreal.Normal @ ((cHOL4.realax.real_add @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X3)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X3)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ (X1 @ X4))) @ ((cHOL4.extreal.extreal_lt @ (X1 @ X4)) @ ((cHOL4.extreal.extreal_div @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.extreal_of_num @ X3)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)))))))))))) @ (cHOL4.pred_set.count @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ (X1 @ X4))))))))))))))))) (Tlebesgue.seq_sup_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.lebesgue.seq_sup @ X0) @ cHOL4.num.0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.lebesgue.seq_sup @ X0) @ (cHOL4.num.SUC @ X2))) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ (cHOL4.extreal.Normal @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.num.SUC @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.lebesgue.seq_sup @ X0) @ X2)) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_sup @ X0)))))))))))))) (Tlebesgue.max_fn_seq_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ cHOL4.num.0) @ X1)) @ ((X0 @ cHOL4.num.0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ (cHOL4.num.SUC @ X2)) @ X1)) @ ((cHOL4.extreal.extreal_max @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ X2) @ X1)) @ ((X0 @ (cHOL4.num.SUC @ X2)) @ X1))))))))))) (Tlebesgue.signed_measure_space_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.lebesgue.signed_measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.measure.countably_additive @ X0)))))) (Tlebesgue.negative_set_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.negative_set @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))) (Tlebesgue.RADON_F_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.RADON_F @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X3))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (X2 @ X3)) @ ((cHOL4.measure.indicator_fn @ X4) @ X3))))) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X1) @ X4))))))))))))))))) (Tlebesgue.RADON_F_integrals_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.RADON_F_integrals @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X3))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.lebesgue.RADON_F @ X0) @ X1)))))))))))))) (Tlebesgue.measure_absolutely_continuous_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lebesgue.measure_absolutely_continuous @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X1) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))) (Tlebesgue.pos_simple_fn_integral_present,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X5) @ X6) @ X7) @ X8)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X13) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (X1 @ X13)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X14]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X9 @ X14))) @ ((cHOL4.measure.indicator_fn @ (X11 @ X14)) @ X13)))) @ X12)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X13) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (X5 @ X13)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X14]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X10 @ X14))) @ ((cHOL4.measure.indicator_fn @ (X11 @ X14)) @ X13)))) @ X12)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X12) @ X11) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X6) @ X7) @ X8)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X12) @ X11) @ X10))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X12)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X14) @ X12)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X9 @ X14)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X14) @ X12)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X10 @ X14)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X14) @ X12)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X15) @ X12)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X14) @ X15))))) @ ((cHOL4.pred_set.DISJOINT @ (X11 @ X14)) @ (X11 @ X15)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X14) @ X12)) @ ((cHOL4.bool.IN @ (X11 @ X14)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X11) @ X12))) @ (cHOL4.measure.m_space @ X0))))))))))))))))))))))))))))))))))))))) (Tlebesgue.psfis_present,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.lebesgue.psfis @ X0) @ X2))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X9) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (X1 @ X9)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X10]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X5 @ X10))) @ ((cHOL4.measure.indicator_fn @ (X7 @ X10)) @ X9)))) @ X8)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X9) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (X2 @ X9)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X10]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X6 @ X10))) @ ((cHOL4.measure.indicator_fn @ (X7 @ X10)) @ X9)))) @ X8)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X8) @ X7) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X8) @ X7) @ X6))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X8)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X10) @ X8)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X5 @ X10)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X10) @ X8)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X6 @ X10)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X10) @ X8)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X11) @ X8)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X10) @ X11))))) @ ((cHOL4.pred_set.DISJOINT @ (X7 @ X10)) @ (X7 @ X11)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X10) @ X8)) @ ((cHOL4.bool.IN @ (X7 @ X10)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X7) @ X8))) @ (cHOL4.measure.m_space @ X0))))))))))))))))))))))))))))))) (Tlebesgue.pos_simple_fn_thm1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X2)) @ ((cHOL4.bool.IN @ X6) @ (X3 @ X5)))))) @ ((cHOL4.min.= @ (X1 @ X6)) @ (cHOL4.extreal.Normal @ (X4 @ X5))))))))))))))))))) (Tlebesgue.pos_simple_fn_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X3) @ X4) @ X5)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X2) @ X3) @ X4) @ X6)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X8) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (X2 @ X8)) @ (X1 @ X8)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X7) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X4 @ X7)) @ cHOL4.pred_set.EMPTY)))))))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.Normal @ (X6 @ X7))) @ (cHOL4.extreal.Normal @ (X5 @ X7))))))))))))))))))))) (Tlebesgue.pos_simple_fn_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X3)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X3) @ X4) @ X1) @ X2) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (((((cHOL4.measure.pos_simple_fn @ X3) @ (^[X9]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X5)) @ (X4 @ X9)))) @ X6) @ X7) @ X8))))))))))))))))))))) (Tlebesgue.pos_simple_fn_cmul_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)))) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X6]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X5)) @ (X1 @ X6)))) @ X2) @ X3) @ (^[X7]: ((cHOL4.realax.real_mul @ X5) @ (X4 @ X7)))))))))))))))))) (Tlebesgue.pos_simple_fn_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X6)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X6) @ X7) @ X3) @ X5) @ X1)) @ (((((cHOL4.measure.pos_simple_fn @ X6) @ X8) @ X2) @ X4) @ X0)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (((((cHOL4.measure.pos_simple_fn @ X6) @ (^[X12]: ((cHOL4.extreal.extreal_add @ (X7 @ X12)) @ (X8 @ X12)))) @ X9) @ X10) @ X11))))))))))))))))))))))))))) (Tlebesgue.pos_simple_fn_add_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X3) @ X4) @ X5)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X2) @ X3) @ X4) @ X6)))) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X7]: ((cHOL4.extreal.extreal_add @ (X1 @ X7)) @ (X2 @ X7)))) @ X3) @ X4) @ (^[X8]: ((cHOL4.realax.real_add @ (X5 @ X8)) @ (X6 @ X8)))))))))))))))))))) (Tlebesgue.pos_simple_fn_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (((((cHOL4.measure.pos_simple_fn @ X0) @ (cHOL4.measure.indicator_fn @ X1)) @ X2) @ X3) @ X4))))))))))))) (Tlebesgue.pos_simple_fn_indicator_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (cHOL4.measure.indicator_fn @ X1)) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ ((cHOL4.pred_set.INSERT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.pred_set.EMPTY))) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.m_space @ X0)) @ X1)) @ X1))) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tlebesgue.pos_simple_fn_max,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X2)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X2) @ X3) @ X4) @ X5) @ X6)) @ (((((cHOL4.measure.pos_simple_fn @ X2) @ X7) @ X0) @ X1) @ X9)))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (((((cHOL4.measure.pos_simple_fn @ X2) @ (^[X13]: ((cHOL4.extreal.extreal_max @ (X3 @ X13)) @ (X7 @ X13)))) @ X10) @ X11) @ X12))))))))))))))))))))))))))))) (Tlebesgue.pos_simple_fn_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X5)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X5)) @ cHOL4.extreal.PosInf)))))))))))))))))) (Tlebesgue.pos_simple_fn_integral_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X5) @ X6) @ X7) @ X8)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X12]: ((cHOL4.extreal.extreal_add @ (X1 @ X12)) @ (X5 @ X12)))) @ X9) @ X10) @ X11)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X6) @ X7) @ X8))) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X9) @ X10) @ X11))))))))))))))))))))))))))))) (Tlebesgue.pos_simple_fn_integral_add_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X5) @ X2) @ X3) @ X6)))) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_add @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X6))) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ (^[X7]: ((cHOL4.realax.real_add @ (X4 @ X7)) @ (X6 @ X7))))))))))))))))))))) (Tlebesgue.psfis_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.lebesgue.psfis @ X0) @ X2))))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_add @ X3) @ X4)) @ ((cHOL4.lebesgue.psfis @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_add @ (X1 @ X5)) @ (X2 @ X5))))))))))))))))) (Tlebesgue.pos_simple_fn_integral_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X5) @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X9) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (X1 @ X9)) @ (X5 @ X9))))))))) @ ((cHOL4.extreal.extreal_le @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X6) @ X7) @ X8)))))))))))))))))))))) (Tlebesgue.psfis_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.lebesgue.psfis @ X0) @ X2))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (X1 @ X5)) @ (X2 @ X5))))))))) @ ((cHOL4.extreal.extreal_le @ X3) @ X4))))))))))))) (Tlebesgue.pos_simple_fn_integral_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X5) @ X6) @ X7)))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X5) @ X6) @ X7)))))))))))))))))))) (Tlebesgue.psfis_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tlebesgue.pos_simple_fn_integral_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (cHOL4.measure.indicator_fn @ X1)) @ X2) @ X3) @ X4)) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ X1)))))))))))))))) (Tlebesgue.psfis_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool.IN @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ X1))) @ ((cHOL4.lebesgue.psfis @ X0) @ (cHOL4.measure.indicator_fn @ X1))))))))) (Tlebesgue.pos_simple_fn_integral_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)))) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X6]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X5)) @ (X1 @ X6)))) @ X2) @ X3) @ (^[X7]: ((cHOL4.realax.real_mul @ X5) @ (X4 @ X7))))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ (^[X7]: ((cHOL4.realax.real_mul @ X5) @ (X4 @ X7))))) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X5)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)))))))))))))))))) (Tlebesgue.psfis_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X3)) @ X2)) @ ((cHOL4.lebesgue.psfis @ X0) @ (^[X4]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X3)) @ (X1 @ X4))))))))))))))) (Tlebesgue.pos_simple_fn_integral_cmul_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X9]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X5)) @ (X1 @ X9)))) @ X6) @ X7) @ X8)) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X6) @ X7) @ X8)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X5)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)))))))))))))))))))))))) (Tlebesgue.IN_psfis,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.lebesgue.psfis @ X0) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X2) @ X3) @ X4) @ X5)) @ ((cHOL4.min.= @ X1) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X3) @ X4) @ X5))))))))))))))))) (Tlebesgue.IN_psfis_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.lebesgue.psfis @ X0) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X2) @ X3) @ X4) @ X5)) @ ((cHOL4.min.= @ X1) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X3) @ X4) @ X5))))))))))))))))) (Tlebesgue.psfis_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.lebesgue.psfis @ X0) @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))))))))))))) (Tlebesgue.pos_simple_fn_integral_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X4]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ X1) @ X2) @ X3))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))))))) (Tlebesgue.pos_simple_fn_integral_zero_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X1) @ X0) @ X2) @ X3) @ X4)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.min.= @ (X0 @ X5)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X1) @ X2) @ X3) @ X4)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))))))))) (Tlebesgue.psfis_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.lebesgue.psfis @ X0) @ (^[X2]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))))) (Tlebesgue.pos_simple_fn_integral_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X1) @ X2) @ X3)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X1) @ X2) @ X3)) @ cHOL4.extreal.PosInf)))))))))))) (Tlebesgue.psfis_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf))))))))))) (Tlebesgue.pos_simple_fn_integral_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ X5)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (X1 @ X6)) @ X2) @ X3) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X7]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X6]: ((X1 @ X6) @ X7))) @ X5))) @ X2) @ X3) @ (^[X8]: ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X9]: ((X4 @ X9) @ X8))) @ X5)))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ (^[X10]: ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X6]: ((X4 @ X6) @ X10))) @ X5)))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X6]: ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ (X4 @ X6)))) @ X5))))))))))))))))) (Tlebesgue.pos_simple_fn_integral_sum_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ X5)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (X1 @ X6)) @ (X2 @ X6)) @ (X3 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ cHOL4.pred_set.EMPTY)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X10]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X6]: ((X1 @ X6) @ X10))) @ X5))) @ X8) @ X7) @ X9)) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X8) @ X7) @ X9)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X6]: ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ (X2 @ X6)) @ (X3 @ X6)) @ (X4 @ X6)))) @ X5))))))))))))))))))))))) (Tlebesgue.psfis_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.bool.IN @ (X2 @ X4)) @ ((cHOL4.lebesgue.psfis @ X0) @ (X1 @ X4))))))) @ (cHOL4.pred_set.FINITE @ X3)))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ X2) @ X3)) @ ((cHOL4.lebesgue.psfis @ X0) @ (^[X5]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((X1 @ X4) @ X5))) @ X3)))))))))))))) (Tlebesgue.psfis_intro,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.bool.IN @ (X1 @ X4)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X2 @ X4)))))) @ (cHOL4.pred_set.FINITE @ X3))))) @ ((cHOL4.bool.IN @ (cHOL4.extreal.Normal @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((cHOL4.realax.real_mul @ (X2 @ X4)) @ ((cHOL4.measure.measure @ X0) @ (X1 @ X4))))) @ X3))) @ ((cHOL4.lebesgue.psfis @ X0) @ (^[X5]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X2 @ X4))) @ ((cHOL4.measure.indicator_fn @ (X1 @ X4)) @ X5)))) @ X3)))))))))))))) (Tlebesgue.pos_simple_fn_integral_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.extreal.extreal_le @ (X5 @ X9)) @ (X1 @ X9))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X5 @ X9)) @ cHOL4.extreal.PosInf))))) @ ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X5) @ X6) @ X7) @ X8)))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ (((((cHOL4.measure.pos_simple_fn @ X0) @ (^[X9]: ((cHOL4.extreal.extreal_sub @ (X1 @ X9)) @ (X5 @ X9)))) @ X10) @ X11) @ X12)) @ ((cHOL4.min.= @ ((cHOL4.extreal.extreal_sub @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X6) @ X7) @ X8))) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X10) @ X11) @ X12))))))))))))))))))))))))))))) (Tlebesgue.psfis_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.extreal.extreal_le @ (X2 @ X5)) @ (X1 @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X5)) @ cHOL4.extreal.PosInf))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.lebesgue.psfis @ X0) @ X1))) @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.lebesgue.psfis @ X0) @ X2))))))) @ ((cHOL4.bool.IN @ ((cHOL4.extreal.extreal_sub @ X3) @ X4)) @ ((cHOL4.lebesgue.psfis @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_sub @ (X1 @ X5)) @ (X2 @ X5))))))))))))))))) (Tlebesgue.pos_fn_integral_pos_simple_fn,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ ((((cHOL4.lebesgue.pos_simple_fn_integral @ X0) @ X2) @ X3) @ X4)))))))))))))) (Tlebesgue.pos_fn_integral_mspace,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (X1 @ X2)) @ ((cHOL4.measure.indicator_fn @ (cHOL4.measure.m_space @ X0)) @ X2))))))))))) (Tlebesgue.pos_fn_integral_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X1]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) (Tlebesgue.pos_fn_integral_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_le @ (X1 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X2)))))))))) (Tlebesgue.pos_fn_integral_mono_mspace,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (X2 @ X3)) @ (X1 @ X3)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X3)))))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X2)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)))))))))) (Tlebesgue.pos_fn_integral_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)))))))) (Tlebesgue.pos_fn_integral_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ (X1 @ X3))))) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1))))))))))) (Tlebesgue.pos_fn_integral_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.indicator_fn @ X1))) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ X1))))))))) (Tlebesgue.pos_fn_integral_cmul_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ ((cHOL4.measure.indicator_fn @ X1) @ X3))))) @ (cHOL4.extreal.Normal @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))))) (Tlebesgue.pos_fn_integral_sum_cmul_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X3 @ X4)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.bool.IN @ (X2 @ X4)) @ (cHOL4.measure.measurable_sets @ X0))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X5]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X3 @ X4))) @ ((cHOL4.measure.indicator_fn @ (X2 @ X4)) @ X5)))) @ X1)))) @ (cHOL4.extreal.Normal @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((cHOL4.realax.real_mul @ (X3 @ X4)) @ ((cHOL4.measure.measure @ X0) @ (X2 @ X4))))) @ X1))))))))))))) (Tlebesgue.lebesgue_monotone_convergence_lemma,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool.IN @ (X2 @ X5)) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.extreal.ext_mono_increasing @ (^[X5]: ((X2 @ X5) @ X6)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X5]: ((X2 @ X5) @ X6))) @ cHOL4.pred_set.UNIV))) @ (X1 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.lebesgue.psfis @ X0) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.extreal.extreal_le @ (X3 @ X6)) @ (X1 @ X6))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X2 @ X5) @ X6))))))))))))) @ ((cHOL4.extreal.extreal_le @ X4) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X5]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (X2 @ X5)))) @ cHOL4.pred_set.UNIV))))))))))))))) (Tlebesgue.lebesgue_monotone_convergence,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ (X2 @ X3)) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X2 @ X3) @ X4))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X4))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.extreal.ext_mono_increasing @ (^[X3]: ((X2 @ X3) @ X4)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((X2 @ X3) @ X4))) @ cHOL4.pred_set.UNIV))) @ (X1 @ X4))))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (X2 @ X3)))) @ cHOL4.pred_set.UNIV))))))))))) (Tlebesgue.lebesgue_monotone_convergence_subset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ (X2 @ X4)) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X2 @ X4) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X4]: ((X2 @ X4) @ X5))) @ cHOL4.pred_set.UNIV))) @ (X1 @ X5)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.extreal.ext_mono_increasing @ (^[X4]: ((X2 @ X4) @ X5)))))) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X0))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_mul @ (X1 @ X5)) @ ((cHOL4.measure.indicator_fn @ X3) @ X5))))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X4]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_mul @ ((X2 @ X4) @ X5)) @ ((cHOL4.measure.indicator_fn @ X3) @ X5)))))) @ cHOL4.pred_set.UNIV))))))))))))) (Tlebesgue.lemma_fn_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ (cHOL4.pred_set.count @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X4)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X1 @ X3)) @ ((cHOL4.extreal.extreal_div @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.extreal_of_num @ X4)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))))))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X4)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))))))))))))))) (Tlebesgue.lemma_fn_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ (X1 @ X3)))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)))))))))))) (Tlebesgue.lemma_fn_3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3)))) @ ((cHOL4.bool.\/ @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)) @ (X1 @ X3))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ (cHOL4.pred_set.count @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ ((cHOL4.extreal.extreal_div @ (cHOL4.extreal.extreal_of_num @ X4)) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2))) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X1 @ X3)) @ ((cHOL4.extreal.extreal_div @ ((cHOL4.extreal.extreal_add @ (cHOL4.extreal.extreal_of_num @ X4)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.extreal.extreal_pow @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X2)))))))))))))))))) (Tlebesgue.lemma_fn_4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0)))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))))))))) (Tlebesgue.lemma_fn_5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X2) @ X3)))))))))))) (Tlebesgue.lemma_fn_mono_increasing,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))) @ (cHOL4.extreal.ext_mono_increasing @ (^[X3]: ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X3) @ X2))))))))))) (Tlebesgue.lemma_fn_upper_bounded,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_le @ ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X2) @ X3)) @ (X1 @ X3)))))))))))) (Tlebesgue.lemma_fn_sup,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X3) @ X2))) @ cHOL4.pred_set.UNIV))) @ (X1 @ X2)))))))))) (Tlebesgue.lemma_fn_in_psfis,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))) @ ((cHOL4.bool.IN @ (((cHOL4.lebesgue.fn_seq_integral @ X0) @ X1) @ X2)) @ ((cHOL4.lebesgue.psfis @ X0) @ (((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X2))))))))))) (Tlebesgue.integral_sequence,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (((cHOL4.lebesgue.fn_seq @ X0) @ X1) @ X3)))) @ cHOL4.pred_set.UNIV))))))))) (Tlebesgue.measurable_sequence,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.extreal.ext_mono_increasing @ (^[X5]: ((X2 @ X5) @ X4)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X5]: ((X2 @ X5) @ X4))) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.measure.fn_plus @ X1) @ X4)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool.IN @ (X3 @ X5)) @ ((cHOL4.lebesgue.psfis @ X0) @ (X2 @ X5)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ ((X2 @ X5) @ X4)) @ ((cHOL4.measure.fn_plus @ X1) @ X4))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X2 @ X5) @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.fn_plus @ X1))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X5]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (X2 @ X5)))) @ cHOL4.pred_set.UNIV))))))))))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.extreal.ext_mono_increasing @ (^[X5]: ((X6 @ X5) @ X4)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X5]: ((X6 @ X5) @ X4))) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.measure.fn_minus @ X1) @ X4)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool.IN @ (X7 @ X5)) @ ((cHOL4.lebesgue.psfis @ X0) @ (X6 @ X5)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ ((X6 @ X5) @ X4)) @ ((cHOL4.measure.fn_minus @ X1) @ X4))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X6 @ X5) @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (cHOL4.measure.fn_minus @ X1))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X5]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (X6 @ X5)))) @ cHOL4.pred_set.UNIV))))))))))))))))))) (Tlebesgue.pos_fn_integral_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))) @ ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_add @ (X1 @ X3)) @ (X2 @ X3))))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X2))))))))))) (Tlebesgue.pos_fn_integral_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X1 @ X3) @ X4)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.bool.IN @ (X1 @ X3)) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X4]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((X1 @ X3) @ X4))) @ X2)))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (X1 @ X3)))) @ X2)))))))))) (Tlebesgue.pos_fn_integral_disjoint_sets,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X4)))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X4]: ((cHOL4.extreal.extreal_mul @ (X1 @ X4)) @ ((cHOL4.measure.indicator_fn @ ((cHOL4.pred_set.UNION @ X2) @ X3)) @ X4))))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X4]: ((cHOL4.extreal.extreal_mul @ (X1 @ X4)) @ ((cHOL4.measure.indicator_fn @ X2) @ X4))))) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X4]: ((cHOL4.extreal.extreal_mul @ (X1 @ X4)) @ ((cHOL4.measure.indicator_fn @ X3) @ X4)))))))))))))))) (Tlebesgue.pos_fn_integral_disjoint_sets_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.bool.IN @ (X3 @ X4)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X6) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X6))))) @ ((cHOL4.pred_set.DISJOINT @ (X3 @ X4)) @ (X3 @ X6)))))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel)))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_mul @ (X1 @ X5)) @ ((cHOL4.measure.indicator_fn @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X3) @ X2))) @ X5))))) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_mul @ (X1 @ X5)) @ ((cHOL4.measure.indicator_fn @ (X3 @ X4)) @ X5)))))) @ X2)))))))))))) (Tlebesgue.pos_fn_integral_split,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (X1 @ X3)) @ ((cHOL4.measure.indicator_fn @ X2) @ X3))))) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (X1 @ X3)) @ ((cHOL4.measure.indicator_fn @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.m_space @ X0)) @ X2)) @ X3)))))))))))))) (Tlebesgue.pos_fn_integral_cmul_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.PosInf) @ ((cHOL4.measure.indicator_fn @ X1) @ X2))))) @ ((cHOL4.extreal.extreal_mul @ cHOL4.extreal.PosInf) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tlebesgue.pos_fn_integral_suminf,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (X1 @ X2)) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: (cHOL4.extreal.ext_suminf @ (^[X2]: ((X1 @ X2) @ X3)))))) @ (cHOL4.extreal.ext_suminf @ (^[X2]: ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (X1 @ X2))))))))))) (Tlebesgue.integral_pos_fn,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)))))))) (Tlebesgue.integrable_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ cHOL4.extreal.PosInf)))))))))) (Tlebesgue.integrable_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.min.= @ (X1 @ X3)) @ cHOL4.extreal.PosInf)))))))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tlebesgue.integrable_infty_null,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ X1))) @ ((cHOL4.measure.null_set @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf)))))))))))) (Tlebesgue.integrable_bounded,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_abs @ (X2 @ X3))) @ (X1 @ X3)))))))) @ ((cHOL4.lebesgue.integrable @ X0) @ X2))))))))) (Tlebesgue.integrable_fn_plus,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ X1))) @ ((cHOL4.lebesgue.integrable @ X0) @ (cHOL4.measure.fn_plus @ X1)))))))) (Tlebesgue.integrable_fn_minus,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ X1))) @ ((cHOL4.lebesgue.integrable @ X0) @ (cHOL4.measure.fn_minus @ X1)))))))) (Tlebesgue.integrable_const,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X2]: (cHOL4.extreal.Normal @ X1))))))))) (Tlebesgue.integrable_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X2]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))))) (Tlebesgue.integrable_plus_minus,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ (cHOL4.measure.fn_plus @ X1))) @ ((cHOL4.lebesgue.integrable @ X0) @ (cHOL4.measure.fn_minus @ X1))))))))))) (Tlebesgue.integrable_add_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X3))))))))) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_add @ (X1 @ X3)) @ (X2 @ X3)))))))))))) (Tlebesgue.integrable_add_lemma,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.lebesgue.integrable @ X0) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_add @ ((cHOL4.measure.fn_plus @ X1) @ X3)) @ ((cHOL4.measure.fn_plus @ X2) @ X3))))) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_add @ ((cHOL4.measure.fn_minus @ X1) @ X3)) @ ((cHOL4.measure.fn_minus @ X2) @ X3))))))))))))) (Tlebesgue.integrable_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.lebesgue.integrable @ X0) @ X2)))) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_add @ (X1 @ X3)) @ (X2 @ X3)))))))))))) (Tlebesgue.integrable_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ X1))) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ (X1 @ X3)))))))))))) (Tlebesgue.integrable_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.lebesgue.integrable @ X0) @ X2)))) @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_sub @ (X1 @ X3)) @ (X2 @ X3)))))))))))) (Tlebesgue.integrable_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.lebesgue.integrable @ X0) @ (cHOL4.measure.indicator_fn @ X1)))))))) (Tlebesgue.integrable_not_infty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X3 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X3 @ X2)) @ cHOL4.extreal.PosInf)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.integral @ X0) @ X3))))))))))))) (Tlebesgue.integrable_not_infty_alt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.integral @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))))))))) (Tlebesgue.integrable_not_infty_alt2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X1)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))))))))) (Tlebesgue.integrable_not_infty_alt3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.integral @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.NegInf)) @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))))))))) (Tlebesgue.integral_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ (cHOL4.measure.indicator_fn @ X1))) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ X1))))))))) (Tlebesgue.integral_add_lemma,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (^[X4]: ((cHOL4.extreal.extreal_sub @ (X2 @ X4)) @ (X3 @ X4))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X4))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X3 @ X4))))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.extreal.extreal_sub @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X2)) @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ X3))))))))))))) (Tlebesgue.integral_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.lebesgue.integrable @ X0) @ X1)) @ ((cHOL4.lebesgue.integrable @ X0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_add @ (X1 @ X3)) @ (X2 @ X3))))) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.integral @ X0) @ X2))))))))))) (Tlebesgue.integral_cmul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.lebesgue.integrable @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ (X1 @ X3))))) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ ((cHOL4.lebesgue.integral @ X0) @ X1))))))))))) (Tlebesgue.integral_cmul_indicator,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X2)) @ ((cHOL4.measure.indicator_fn @ X1) @ X3))))) @ (cHOL4.extreal.Normal @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))))) (Tlebesgue.integral_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ (^[X1]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)))))) (Tlebesgue.integral_mspace,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.integral @ X0) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (X1 @ X2)) @ ((cHOL4.measure.indicator_fn @ (cHOL4.measure.m_space @ X0)) @ X2))))))))))) (Tlebesgue.integral_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.extreal.extreal_le @ (X1 @ X3)) @ (X2 @ X3))))))) @ ((cHOL4.extreal.extreal_le @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.integral @ X0) @ X2)))))))))) (Tlebesgue.finite_space_integral_reduce,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf))))))) @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0)))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.finite_space_integral @ X0) @ X1)))))))) (Tlebesgue.finite_support_integral_reduce,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf))))))) @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.measure.m_space @ X0))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.lebesgue.finite_space_integral @ X0) @ X1)))))))) (Tlebesgue.finite_space_POW_integral_reduce,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.extreal.PosInf)))))))))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (X1 @ X2)) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))))) @ (cHOL4.measure.m_space @ X0))))))))) (Tlebesgue.finite_POW_prod_measure_reduce,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X1)))) @ ((cHOL4.min.= @ (((cHOL4.lebesgue.prod_measure @ X0) @ X1) @ ((cHOL4.pred_set.CROSS @ X2) @ X3))) @ ((cHOL4.realax.real_mul @ ((cHOL4.measure.measure @ X0) @ X2)) @ ((cHOL4.measure.measure @ X1) @ X3)))))))))))))) (Tlebesgue.measure_space_finite_prod_measure_POW1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1)))))))) @ (cHOL4.measure.measure_space @ ((cHOL4.lebesgue.prod_measure_space @ X0) @ X1)))))))) (Tlebesgue.measure_space_finite_prod_measure_POW2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1)))))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.m_space @ X1)))) @ ((cHOL4.lebesgue.prod_measure @ X0) @ X1)))))))))) (Tlebesgue.finite_prod_measure_space_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.prod_measure_space @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X0)) @ X2))) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X1)) @ X3)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ X0) @ X1))) @ ((cHOL4.lebesgue.prod_measure @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X0)) @ X2))) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X1)) @ X3)))))))))))))))) (Tlebesgue.finite_POW_prod_measure_reduce3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X2))) @ (cHOL4.measure.measurable_sets @ X2))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.measurable_sets @ X2))))) @ ((cHOL4.min.= @ ((((cHOL4.lebesgue.prod_measure3 @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ ((cHOL4.pred_set.CROSS @ X4) @ X5)))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ ((cHOL4.measure.measure @ X0) @ X3)) @ ((cHOL4.measure.measure @ X1) @ X4))) @ ((cHOL4.measure.measure @ X2) @ X5)))))))))))))))))) (Tlebesgue.measure_space_finite_prod_measure_POW3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X2))) @ (cHOL4.measure.measurable_sets @ X2))))))))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X2)))) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X2))))) @ (((cHOL4.lebesgue.prod_measure3 @ X0) @ X1) @ X2)))))))))))) (Tlebesgue.finite_prod_measure_space_POW3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2)))) @ ((cHOL4.min.= @ (((cHOL4.lebesgue.prod_measure_space3 @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X0)) @ X3))) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X1)) @ X4))) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X2)) @ X5)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ X0) @ ((cHOL4.pred_set.CROSS @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ X0) @ ((cHOL4.pred_set.CROSS @ X1) @ X2)))) @ (((cHOL4.lebesgue.prod_measure3 @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X0)) @ X3))) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X1)) @ X4))) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X2)) @ X5)))))))))))))))))))) (Tlebesgue.seq_sup_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.lebesgue.seq_sup @ X0) @ cHOL4.num.0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.lebesgue.seq_sup @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ (cHOL4.extreal.Normal @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.lebesgue.seq_sup @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_sup @ X0))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.lebesgue.seq_sup @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_sup @ X0)) @ ((cHOL4.extreal.extreal_add @ X1) @ (cHOL4.extreal.Normal @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ ((cHOL4.lebesgue.seq_sup @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ (cHOL4.extreal.extreal_sup @ X0))))))))))))))) (Tlebesgue.EXTREAL_SUP_SEQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2))))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ (X3 @ X4)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ (X3 @ X4)) @ (X3 @ (cHOL4.num.SUC @ X4)))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ X3) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ X0)))))))))) (Tlebesgue.EXTREAL_SUP_FUN_SEQ_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (X0 @ X3)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.extreal.extreal_le @ X3) @ X4)))))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.IMAGE @ X2) @ X1))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool.IN @ (X5 @ X6)) @ X1)))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X6]: (X2 @ (X5 @ X6)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ X0))))))))))))) (Tlebesgue.max_fn_seq_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ cHOL4.num.0) @ X1)) @ ((X0 @ cHOL4.num.0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X1)) @ ((cHOL4.extreal.extreal_max @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X1)) @ ((cHOL4.extreal.extreal_max @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X1)) @ ((X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X1)))))))))))) (Tlebesgue.max_fn_seq_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ X1) @ X2)) @ (((cHOL4.lebesgue.max_fn_seq @ X0) @ (cHOL4.num.SUC @ X1)) @ X2))))))))) (Tlebesgue.EXTREAL_SUP_FUN_SEQ_MONO_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (X1 @ X3)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ cHOL4.extreal.PosInf))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ ((cHOL4.extreal.extreal_le @ X3) @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.pred_set.IMAGE @ X0) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X6) @ X2)) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.extreal.extreal_le @ (X5 @ X7)) @ (X6 @ X7))))))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X5)) @ (X0 @ X6)))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X2)) @ ((cHOL4.bool.IN @ X6) @ X2))) @ ((cHOL4.bool.IN @ (^[X7]: ((cHOL4.extreal.extreal_max @ (X5 @ X7)) @ (X6 @ X7)))) @ X2))))))))))) @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.bool.IN @ (X8 @ X9)) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.extreal.extreal_le @ ((X8 @ X9) @ X7)) @ ((X8 @ (cHOL4.num.SUC @ X9)) @ X7))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X9]: (X0 @ (X8 @ X9)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ X1)))))))))))))) (Tlebesgue.lemma_radon_max_in_F,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.m_space @ X3)) @ (cHOL4.measure.m_space @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X3)) @ (cHOL4.measure.measurable_sets @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.lebesgue.RADON_F @ X2) @ X3))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.lebesgue.RADON_F @ X2) @ X3)))))))) @ ((cHOL4.bool.IN @ (^[X4]: ((cHOL4.extreal.extreal_max @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.lebesgue.RADON_F @ X2) @ X3)))))))))))) (Tlebesgue.lemma_radon_seq_conv_sup,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.m_space @ X2)) @ (cHOL4.measure.m_space @ X1))) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X2)) @ (cHOL4.measure.measurable_sets @ X1)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ (X3 @ X4)) @ ((cHOL4.lebesgue.RADON_F @ X1) @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.extreal.extreal_le @ ((X3 @ X4) @ X5)) @ ((X3 @ (cHOL4.num.SUC @ X4)) @ X5))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X4]: ((cHOL4.lebesgue.pos_fn_integral @ X1) @ (X3 @ X4)))) @ cHOL4.pred_set.UNIV))) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.lebesgue.RADON_F_integrals @ X1) @ X2))))))))))))))) (Tlebesgue.RN_lemma1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.measurable_sets @ X0))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.measure.measure @ X1) @ (cHOL4.measure.m_space @ X0)))) @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ X3)) @ ((cHOL4.measure.measure @ X1) @ X3)))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pred_set.SUBSET @ X4) @ X3))) @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ X2)) @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ X4)) @ ((cHOL4.measure.measure @ X1) @ X4)))))))))))))))))) (Tlebesgue.RN_lemma2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.measure.measure @ X1) @ (cHOL4.measure.m_space @ X0)))) @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ X2)) @ ((cHOL4.measure.measure @ X1) @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pred_set.SUBSET @ X3) @ X2))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ X3)) @ ((cHOL4.measure.measure @ X1) @ X3)))))))))))))))) (Tlebesgue.Radon_Nikodym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.lebesgue.measure_absolutely_continuous @ X1) @ X0)))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X3))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (X2 @ X3)) @ ((cHOL4.measure.indicator_fn @ X4) @ X3))))) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X1) @ X4)))))))))))))))) (Tlebesgue.Radon_Nikodym2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.lebesgue.measure_absolutely_continuous @ X1) @ X0)))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X2 @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.extreal.PosInf))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.pos_fn_integral @ X0) @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (X2 @ X3)) @ ((cHOL4.measure.indicator_fn @ X4) @ X3))))) @ (cHOL4.extreal.Normal @ ((cHOL4.measure.measure @ X1) @ X4))))))))))))))))) (Tlim.tends_real_real,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lim.tends_real_real @ X0) @ X1) @ X2)) @ (((cHOL4.nets.tends @ X0) @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ (cHOL4.nets.tendsto @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ X2)))))))))))) (Tlim.diffl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ (((cHOL4.lim.tends_real_real @ (^[X3]: ((cHOL4.real./ @ ((cHOL4.real.real_sub @ (X0 @ ((cHOL4.realax.real_add @ X2) @ X3))) @ (X0 @ X2))) @ X3))) @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tlim.contl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lim.contl @ X0) @ X1)) @ (((cHOL4.lim.tends_real_real @ (^[X2]: (X0 @ ((cHOL4.realax.real_add @ X1) @ X2)))) @ (X0 @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Tlim.differentiable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lim.differentiable @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.lim.diffl @ X0) @ X2) @ X1))))))))) (Tlim.LIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lim.tends_real_real @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X5) @ X2)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X5) @ X2))) @ X4))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X5)) @ X1))) @ X3)))))))))))))))))) (Tlim.LIM_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.lim.tends_real_real @ (^[X1]: X0)) @ X0) @ X1)))))) (Tlim.LIM_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X0) @ X2) @ X4)) @ (((cHOL4.lim.tends_real_real @ X1) @ X3) @ X4))) @ (((cHOL4.lim.tends_real_real @ (^[X4]: ((cHOL4.realax.real_add @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.realax.real_add @ X2) @ X3)) @ X4))))))))))))) (Tlim.LIM_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X0) @ X2) @ X4)) @ (((cHOL4.lim.tends_real_real @ X1) @ X3) @ X4))) @ (((cHOL4.lim.tends_real_real @ (^[X4]: ((cHOL4.realax.real_mul @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.realax.real_mul @ X2) @ X3)) @ X4))))))))))))) (Tlim.LIM_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lim.tends_real_real @ X0) @ X1) @ X2)) @ (((cHOL4.lim.tends_real_real @ (^[X2]: (cHOL4.realax.real_neg @ (X0 @ X2)))) @ (cHOL4.realax.real_neg @ X1)) @ X2))))))))) (Tlim.LIM_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (((cHOL4.lim.tends_real_real @ (^[X2]: (cHOL4.realax.inv @ (X0 @ X2)))) @ (cHOL4.realax.inv @ X1)) @ X2))))))))) (Tlim.LIM_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X0) @ X2) @ X4)) @ (((cHOL4.lim.tends_real_real @ X1) @ X3) @ X4))) @ (((cHOL4.lim.tends_real_real @ (^[X4]: ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.real.real_sub @ X2) @ X3)) @ X4))))))))))))) (Tlim.LIM_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X0) @ X2) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X1) @ X3) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ (((cHOL4.lim.tends_real_real @ (^[X4]: ((cHOL4.real./ @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.real./ @ X2) @ X3)) @ X4))))))))))))) (Tlim.LIM_NULL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lim.tends_real_real @ X0) @ X1) @ X2)) @ (((cHOL4.lim.tends_real_real @ (^[X2]: ((cHOL4.real.real_sub @ (X0 @ X2)) @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))))))))) (Tlim.LIM_X,(cHOL4.bool.! @ (^[X0]: (((cHOL4.lim.tends_real_real @ (^[X1]: X1)) @ X0) @ X0)))) (Tlim.LIM_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ X0) @ X1) @ X3)) @ (((cHOL4.lim.tends_real_real @ X0) @ X2) @ X3))) @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Tlim.LIM_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X3))) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X1 @ X4)))))) @ ((cHOL4.min.= @ (((cHOL4.lim.tends_real_real @ X0) @ X2) @ X3)) @ (((cHOL4.lim.tends_real_real @ X1) @ X2) @ X3)))))))))))) (Tlim.LIM_TRANSFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.tends_real_real @ (^[X4]: ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X1 @ X4)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ (((cHOL4.lim.tends_real_real @ X1) @ X3) @ X2))) @ (((cHOL4.lim.tends_real_real @ X0) @ X3) @ X2))))))))))) (Tlim.DIFF_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X1) @ X3)) @ (((cHOL4.lim.diffl @ X0) @ X2) @ X3))) @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Tlim.DIFF_CONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ ((cHOL4.lim.contl @ X0) @ X2))))))))) (Tlim.CONTL_LIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.lim.contl @ X0) @ X1)) @ (((cHOL4.lim.tends_real_real @ X0) @ (X0 @ X1)) @ X1))))))) (Tlim.DIFF_CARAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X0 @ X2))) @ ((cHOL4.realax.real_mul @ (X3 @ X4)) @ ((cHOL4.real.real_sub @ X4) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X3) @ X2)) @ ((cHOL4.min.= @ (X3 @ X2)) @ X1))))))))))))) (Tlim.CONT_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.lim.contl @ (^[X1]: X0)) @ X1)))))) (Tlim.CONT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X0) @ X2)) @ ((cHOL4.lim.contl @ X1) @ X2))) @ ((cHOL4.lim.contl @ (^[X2]: ((cHOL4.realax.real_add @ (X0 @ X2)) @ (X1 @ X2)))) @ X2))))))))) (Tlim.CONT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X0) @ X2)) @ ((cHOL4.lim.contl @ X1) @ X2))) @ ((cHOL4.lim.contl @ (^[X2]: ((cHOL4.realax.real_mul @ (X0 @ X2)) @ (X1 @ X2)))) @ X2))))))))) (Tlim.CONT_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.lim.contl @ X0) @ X1)) @ ((cHOL4.lim.contl @ (^[X1]: (cHOL4.realax.real_neg @ (X0 @ X1)))) @ X1))))))) (Tlim.CONT_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.lim.contl @ (^[X1]: (cHOL4.realax.inv @ (X0 @ X1)))) @ X1))))))) (Tlim.CONT_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X0) @ X2)) @ ((cHOL4.lim.contl @ X1) @ X2))) @ ((cHOL4.lim.contl @ (^[X2]: ((cHOL4.real.real_sub @ (X0 @ X2)) @ (X1 @ X2)))) @ X2))))))))) (Tlim.CONT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.lim.contl @ (^[X2]: ((cHOL4.real./ @ (X0 @ X2)) @ (X1 @ X2)))) @ X2))))))))) (Tlim.CONT_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.lim.contl @ X0) @ X2)) @ ((cHOL4.lim.contl @ X1) @ (X0 @ X2)))) @ ((cHOL4.lim.contl @ (^[X2]: (X1 @ (X0 @ X2)))) @ X2))))))))) (Tlim.IVT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (X0 @ X1)) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.real.real_lte @ X4) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X4))))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X2)) @ ((cHOL4.min.= @ (X0 @ X4)) @ X3))))))))))))))) (Tlim.IVT2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (X0 @ X2)) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ (X0 @ X1)))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.real.real_lte @ X4) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X4))))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X2)) @ ((cHOL4.min.= @ (X0 @ X4)) @ X3))))))))))))))) (Tlim.DIFF_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.lim.diffl @ (^[X1]: X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))))) (Tlim.DIFF_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X4)) @ (((cHOL4.lim.diffl @ X1) @ X3) @ X4))) @ (((cHOL4.lim.diffl @ (^[X4]: ((cHOL4.realax.real_add @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.realax.real_add @ X2) @ X3)) @ X4))))))))))))) (Tlim.DIFF_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X4)) @ (((cHOL4.lim.diffl @ X1) @ X3) @ X4))) @ (((cHOL4.lim.diffl @ (^[X4]: ((cHOL4.realax.real_mul @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X2) @ (X1 @ X4))) @ ((cHOL4.realax.real_mul @ X3) @ (X0 @ X4)))) @ X4))))))))))))) (Tlim.DIFF_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X0) @ X2) @ X3)) @ (((cHOL4.lim.diffl @ (^[X3]: ((cHOL4.realax.real_mul @ X1) @ (X0 @ X3)))) @ ((cHOL4.realax.real_mul @ X1) @ X2)) @ X3))))))))))) (Tlim.DIFF_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ (((cHOL4.lim.diffl @ (^[X2]: (cHOL4.realax.real_neg @ (X0 @ X2)))) @ (cHOL4.realax.real_neg @ X1)) @ X2))))))))) (Tlim.DIFF_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X4)) @ (((cHOL4.lim.diffl @ X1) @ X3) @ X4))) @ (((cHOL4.lim.diffl @ (^[X4]: ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.real.real_sub @ X2) @ X3)) @ X4))))))))))))) (Tlim.DIFF_CHAIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ (X1 @ X4))) @ (((cHOL4.lim.diffl @ X1) @ X3) @ X4))) @ (((cHOL4.lim.diffl @ (^[X4]: (X0 @ (X1 @ X4)))) @ ((cHOL4.realax.real_mul @ X2) @ X3)) @ X4))))))))))))) (Tlim.DIFF_X,(cHOL4.bool.! @ (^[X0]: (((cHOL4.lim.diffl @ (^[X0]: X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Tlim.DIFF_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.lim.diffl @ (^[X1]: ((cHOL4.real.pow @ X1) @ X0))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ ((cHOL4.real.pow @ X1) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X1)))))) (Tlim.DIFF_XM1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (((cHOL4.lim.diffl @ (^[X0]: (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.real_neg @ ((cHOL4.real.pow @ (cHOL4.realax.inv @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))))) (Tlim.DIFF_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (((cHOL4.lim.diffl @ (^[X2]: (cHOL4.realax.inv @ (X0 @ X2)))) @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ X1) @ ((cHOL4.real.pow @ (X0 @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X2))))))))) (Tlim.DIFF_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X1) @ X3) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X4)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ (((cHOL4.lim.diffl @ (^[X4]: ((cHOL4.real./ @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X2) @ (X1 @ X4))) @ ((cHOL4.realax.real_mul @ X3) @ (X0 @ X4)))) @ ((cHOL4.real.pow @ (X1 @ X4)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X4))))))))))))) (Tlim.DIFF_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X5)) @ ((cHOL4.prim_rec.< @ X5) @ ((cHOL4.arithmetic.+ @ X2) @ X3)))) @ (((cHOL4.lim.diffl @ (^[X4]: ((X0 @ X5) @ X4))) @ ((X1 @ X5) @ X4)) @ X4))))) @ (((cHOL4.lim.diffl @ (^[X4]: ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X3]: ((X0 @ X3) @ X4))))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X5]: ((X1 @ X5) @ X4)))) @ X4))))))))))))) (Tlim.CONT_BOUNDED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ X4)))))))))))))) (Tlim.CONT_HASSUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ X4))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X5) @ X4)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.realax.real_lt @ X5) @ (X0 @ X3)))))))))))))))))))) (Tlim.CONT_ATTAINS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ X4))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.min.= @ (X0 @ X3)) @ X4)))))))))))))))) (Tlim.CONT_ATTAINS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.real.real_lte @ X4) @ (X0 @ X3)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.min.= @ (X0 @ X3)) @ X4)))))))))))))))) (Tlim.CONT_ATTAINS_ALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X5))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X2)) @ ((cHOL4.min.= @ (X0 @ X3)) @ X6))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ (X0 @ X3))) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ X5))))))))))))))))))) (Tlim.DIFF_LINC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.realax.real_lt @ X4) @ X3))) @ ((cHOL4.realax.real_lt @ (X0 @ X1)) @ (X0 @ ((cHOL4.realax.real_add @ X1) @ X4))))))))))))))))) (Tlim.DIFF_LDEC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X1)) @ ((cHOL4.realax.real_lt @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.realax.real_lt @ X4) @ X3))) @ ((cHOL4.realax.real_lt @ (X0 @ X1)) @ (X0 @ ((cHOL4.real.real_sub @ X1) @ X4))))))))))))))))) (Tlim.DIFF_LMAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X1)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X4))) @ X3)) @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ (X0 @ X1)))))))))) @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tlim.DIFF_LMIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X1)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X4))) @ X3)) @ ((cHOL4.real.real_lte @ (X0 @ X1)) @ (X0 @ X4)))))))))) @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tlim.DIFF_LCONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X1)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X4))) @ X3)) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X0 @ X1)))))))))) @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tlim.INTERVAL_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X2)) @ ((cHOL4.realax.real_lt @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X2) @ X4))) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X4)) @ ((cHOL4.real.real_lte @ X4) @ X1)))))))))))))))) (Tlim.ROLLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X2))) @ ((cHOL4.lim.differentiable @ X0) @ X3)))))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X4) @ X2)) @ (((cHOL4.lim.diffl @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4))))))))))))) (Tlim.MVT_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((^[X3]: ((cHOL4.real.real_sub @ (X0 @ X3)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ (X0 @ X2)) @ (X0 @ X1))) @ ((cHOL4.real.real_sub @ X2) @ X1))) @ X3))) @ X1)) @ ((^[X3]: ((cHOL4.real.real_sub @ (X0 @ X3)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ (X0 @ X2)) @ (X0 @ X1))) @ ((cHOL4.real.real_sub @ X2) @ X1))) @ X3))) @ X2))))))))) (Tlim.MVT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X2))) @ ((cHOL4.lim.differentiable @ X0) @ X3))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X5) @ X2)) @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X4) @ X5)) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (X0 @ X2)) @ (X0 @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ X2) @ X1)) @ X4))))))))))))))))) (Tlim.DIFF_ISCONST_END,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X2))) @ (((cHOL4.lim.diffl @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3))))))) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X1)))))))))) (Tlim.DIFF_ISCONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.lim.contl @ X0) @ X3))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X2))) @ (((cHOL4.lim.diffl @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))) @ ((cHOL4.min.= @ (X0 @ X3)) @ (X0 @ X1))))))))))))) (Tlim.DIFF_ISCONST_ALL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (((cHOL4.lim.diffl @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2)))))))))) (Tlim.INTERVAL_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ X0) @ X2)) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.realax.real_add @ X0) @ X2)))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0))) @ X2))))))))) (Tlim.CONT_INJ_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.min.= @ (X1 @ (X0 @ X4))) @ X4))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.lim.contl @ X0) @ X4))))))) @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ (X0 @ X2)))))))))))))))) (Tlim.CONT_INJ_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.min.= @ (X1 @ (X0 @ X4))) @ X4))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.lim.contl @ X0) @ X4))))))) @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X0 @ X4)))))))))))))))) (Tlim.CONT_INJ_RANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.min.= @ (X1 @ (X0 @ X4))) @ X4))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.lim.contl @ X0) @ X4))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X6) @ (X0 @ X2)))) @ X5)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.min.= @ (X0 @ X4)) @ X6)))))))))))))))))))) (Tlim.CONT_INVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.min.= @ (X1 @ (X0 @ X4))) @ X4))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.lim.contl @ X0) @ X4))))))) @ ((cHOL4.lim.contl @ X1) @ (X0 @ X2)))))))))))) (Tlim.DIFF_INVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X5) @ X3))) @ X4)) @ ((cHOL4.min.= @ (X1 @ (X0 @ X5))) @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X5) @ X3))) @ X4)) @ ((cHOL4.lim.contl @ X0) @ X5))))) @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) @ (((cHOL4.lim.diffl @ X1) @ (cHOL4.realax.inv @ X2)) @ (X0 @ X3)))))))))))))) (Tlim.DIFF_INVERSE_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X5) @ X3))) @ X4)) @ ((cHOL4.min.= @ (X1 @ (X0 @ X5))) @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X5) @ X3))) @ X4)) @ ((cHOL4.lim.contl @ X0) @ X5))))) @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) @ (((cHOL4.lim.diffl @ X1) @ (cHOL4.realax.inv @ X2)) @ (X0 @ X3)))))))))))))) (Tlim.INTERVAL_CLEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X2)) @ ((cHOL4.realax.real_lt @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X4) @ X2))) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X4)) @ ((cHOL4.realax.real_lt @ X4) @ X1)))))))))))))))) (Tlim.DIFF_INVERSE_OPEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X4) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X3) @ X6)) @ ((cHOL4.realax.real_lt @ X6) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ (X0 @ X6))) @ X6)) @ ((cHOL4.lim.contl @ X0) @ X6)))))) @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X2) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) @ (((cHOL4.lim.diffl @ X1) @ (cHOL4.realax.inv @ X2)) @ (X0 @ X4)))))))))))))))) (Tlist.SUM_ACC_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.SUM_ACC @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.SUM_ACC @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.list.SUM_ACC @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))))))) (Tlist.REV_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.REV @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.REV @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.list.REV @ X2) @ ((cHOL4.list.CONS @ X1) @ X0))))))))))) (Tlist.LEN_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.LEN @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.LEN @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.list.LEN @ X2) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tlist.PAD_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.PAD_RIGHT @ X0) @ X1) @ X2)) @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.GENLIST @ (cHOL4.combin.K @ X0)) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X2)))))))))))) (Tlist.PAD_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.PAD_LEFT @ X0) @ X1) @ X2)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.GENLIST @ (cHOL4.combin.K @ X0)) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X2)))) @ X2))))))))) (Tlist.GENLIST_AUX,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.GENLIST_AUX @ X0) @ cHOL4.num.0) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.GENLIST_AUX @ X0) @ (cHOL4.num.SUC @ X2)) @ X1)) @ (((cHOL4.list.GENLIST_AUX @ X0) @ X2) @ ((cHOL4.list.CONS @ (X0 @ X2)) @ X1))))))))))) (Tlist.GENLIST,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X0) @ cHOL4.num.0)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.list.SNOC @ (X0 @ X1)) @ ((cHOL4.list.GENLIST @ X0) @ X1))))))))) (Tlist.SNOC,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.SNOC @ X0) @ X2))))))))))) (Tlist.isPREFIX,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ cHOL4.list.NIL) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ (((cHOL4.list.list_CASE @ X0) @ cHOL4.bool.F) @ (^[X3]: (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.list.isPREFIX @ X2) @ X4)))))))))))))) (Tlist.SET_TO_LIST_primitive,((cHOL4.min.= @ cHOL4.list.SET_TO_LIST) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))) @ ((X0 @ (cHOL4.pred_set.REST @ X1)) @ X1)))))))) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ (cHOL4.pred_set.FINITE @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ (cHOL4.pred_set.CHOICE @ X1)) @ (X2 @ (cHOL4.pred_set.REST @ X1))))) @ cHOL4.bool.ARB))))))) (Tlist.LRC_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.list.LRC @ X0) @ cHOL4.list.NIL) @ X1) @ X2)) @ ((cHOL4.min.= @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.list.LRC @ X0) @ ((cHOL4.list.CONS @ X3) @ X4)) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((X0 @ X1) @ X5)) @ ((((cHOL4.list.LRC @ X0) @ X4) @ X5) @ X2)))))))))))))))))) (Tlist.ALL_DISTINCT,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ cHOL4.list.NIL)) @ cHOL4.bool.T)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))) @ (cHOL4.list.ALL_DISTINCT @ X1))))))))) (Tlist.DROP_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ X1) @ X2)) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))) (Tlist.TAKE_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))))))))))) (Tlist.FRONT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.list.FRONT @ X1))))))))) (Tlist.LAST_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ X0) @ (cHOL4.list.LAST @ X1)))))))) (Tlist.REVERSE_DEF,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.REVERSE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.APPEND @ (cHOL4.list.REVERSE @ X1)) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))))))) (Tlist.UNZIP,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.UNZIP @ cHOL4.list.NIL)) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ cHOL4.list.NIL))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.UNZIP @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.FST @ (cHOL4.list.UNZIP @ X1)))) @ ((cHOL4.list.CONS @ (cHOL4.pair.SND @ X0)) @ (cHOL4.pair.SND @ (cHOL4.list.UNZIP @ X1))))))))))) (Tlist.ZIP,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ cHOL4.list.NIL))) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X0) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X3)))))))))))))) (Tlist.list_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.list_size @ X0) @ cHOL4.list.NIL)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.list_size @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ ((cHOL4.list.list_size @ X0) @ X2)))))))))))) (Tlist.list_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.list_CASE @ cHOL4.list.NIL) @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.list_CASE @ ((cHOL4.list.CONS @ X2) @ X3)) @ X0) @ X1)) @ ((X1 @ X2) @ X3)))))))))))) (Tlist.list_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ cHOL4.bool.ARB) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X4]: (^[X5]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ X4) @ ((cHOL4.ind_type.FCONS @ X5) @ (^[X3]: cHOL4.ind_type.BOTTOM))))) @ X4) @ X5))) @ (X2 @ X5)))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tlist.NULL_DEF,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.NULL @ cHOL4.list.NIL)) @ cHOL4.bool.T)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.NULL @ ((cHOL4.list.CONS @ X0) @ X1))) @ cHOL4.bool.F))))))) (Tlist.HD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.HD @ ((cHOL4.list.CONS @ X0) @ X1))) @ X0)))))) (Tlist.TL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.TL @ ((cHOL4.list.CONS @ X0) @ X1))) @ X1)))))) (Tlist.SUM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.SUM @ cHOL4.list.NIL)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.SUM @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.list.SUM @ X1))))))))) (Tlist.APPEND,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.CONS @ X3) @ X1)) @ X2)) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.APPEND @ X1) @ X2))))))))))) (Tlist.FLAT,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.FLAT @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.APPEND @ X0) @ (cHOL4.list.FLAT @ X1))))))))) (Tlist.LENGTH,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ cHOL4.list.NIL)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X1))))))))) (Tlist.MAP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.list.CONS @ (X0 @ X1)) @ ((cHOL4.list.MAP @ X0) @ X2))))))))))) (Tlist.LIST_TO_SET_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.LIST_TO_SET @ cHOL4.list.NIL) @ X0)) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.list.LIST_TO_SET @ X2) @ X0))))))))))) (Tlist.FILTER,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.bool.COND @ (X0 @ X1)) @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.FILTER @ X0) @ X2))) @ ((cHOL4.list.FILTER @ X0) @ X2))))))))))) (Tlist.FOLDR,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ cHOL4.list.NIL)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((X0 @ X2) @ (((cHOL4.list.FOLDR @ X0) @ X1) @ X3))))))))))))) (Tlist.FOLDL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ cHOL4.list.NIL)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.list.FOLDL @ X0) @ ((X0 @ X1) @ X2)) @ X3)))))))))))) (Tlist.EVERY_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.list.EVERY @ X0) @ X2))))))))))) (Tlist.EXISTS_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.bool.\/ @ (X0 @ X1)) @ ((cHOL4.list.EXISTS @ X0) @ X2))))))))))) (Tlist.EL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.EL @ cHOL4.num.0) @ X0)) @ (cHOL4.list.HD @ X0))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.list.EL @ X1) @ (cHOL4.list.TL @ X0))))))))) (Tlist.LUPDATE_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ X1) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ cHOL4.num.0) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X0) @ X3))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X2) @ (((cHOL4.list.LUPDATE @ X0) @ X1) @ X3)))))))))))))) (Tlist.EVERYi_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.EVERYi @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERYi @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.num.0) @ X1)) @ ((cHOL4.list.EVERYi @ ((cHOL4.combin.o @ X0) @ cHOL4.num.SUC)) @ X2))))))))))) (Tlist.splitAtPki_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.splitAtPki @ X0) @ X1) @ cHOL4.list.NIL)) @ ((X1 @ cHOL4.list.NIL) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.splitAtPki @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.bool.COND @ ((X0 @ cHOL4.num.0) @ X2)) @ ((X1 @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.list.splitAtPki @ ((cHOL4.combin.o @ X0) @ cHOL4.num.SUC)) @ (^[X4]: (^[X5]: ((X1 @ ((cHOL4.list.CONS @ X2) @ X4)) @ X5)))) @ X3))))))))))))) (Tlist.EXISTS_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool.\/ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (X0 @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) (Tlist.SUM_SUM_ACC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SUM @ X0)) @ ((cHOL4.list.SUM_ACC @ X0) @ cHOL4.num.0))))) (Tlist.SUM_ACC_SUM_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.SUM_ACC @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.SUM @ X0)) @ X1))))))) (Tlist.REVERSE_REV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ ((cHOL4.list.REV @ X0) @ cHOL4.list.NIL))))) (Tlist.LENGTH_LEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.LEN @ X0) @ cHOL4.num.0))))) (Tlist.REV_REVERSE_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.REV @ X0) @ X1)) @ ((cHOL4.list.APPEND @ (cHOL4.list.REVERSE @ X0)) @ X1))))))) (Tlist.LEN_LENGTH_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.LEN @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X0)) @ X1))))))) (Tlist.INFINITE_LIST_UNIV,(cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) (Tlist.MAP_ZIP_SAME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X0)))) @ ((cHOL4.list.MAP @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ X2)))) @ X0))))))) (Tlist.FOLDL_ZIP_SAME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X1) @ X2) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X0)))) @ (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((X1 @ X3) @ ((cHOL4.pair.|comma| @ X4) @ X4))))) @ X2) @ X0))))))))) (Tlist.FOLDL_UNION_BIGUNION_paired,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pred_set.UNION @ X2) @ ((X0 @ X3) @ X4))))))) @ X2) @ X1)) @ ((cHOL4.pred_set.UNION @ X2) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (cHOL4.pair.UNCURRY @ X0)) @ (cHOL4.list.LIST_TO_SET @ X1)))))))))))) (Tlist.FOLDL_UNION_BIGUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.pred_set.UNION @ X2) @ (X0 @ X3))))) @ X2) @ X1)) @ ((cHOL4.pred_set.UNION @ X2) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))))))))))) (Tlist.REVERSE_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ ((cHOL4.list.GENLIST @ X1) @ X0))) @ ((cHOL4.list.GENLIST @ (^[X2]: (X1 @ ((cHOL4.arithmetic.- @ (cHOL4.prim_rec.PRE @ X0)) @ X2)))) @ X0))))))) (Tlist.EL_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0))) @ X1)))))))) (Tlist.SUM_IMAGE_eq_SUM_MAP_SET_TO_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X1) @ X0)) @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.SET_TO_LIST @ X0)))))))))) (Tlist.SUM_MAP_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X0) @ X1))) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.arithmetic.+ @ X2) @ (X0 @ X3))))) @ cHOL4.num.0) @ X1))))))) (Tlist.SUM_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.SUM @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.SUM @ X0)) @ (cHOL4.list.SUM @ X1)))))))) (Tlist.SUM_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.SUM @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.SUM @ X1)) @ X0))))))) (Tlist.FOLDL_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.SNOC @ X2) @ X3))) @ ((X0 @ (((cHOL4.list.FOLDL @ X0) @ X1) @ X3)) @ X2))))))))))) (Tlist.ALL_DISTINCT_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.GENLIST @ X1) @ X0))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))))) @ ((cHOL4.min.= @ X2) @ X3)))))))))))) (Tlist.ALL_DISTINCT_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))) @ (cHOL4.list.ALL_DISTINCT @ X1)))))))) (Tlist.MEM_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.GENLIST @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X1)) @ ((cHOL4.min.= @ X0) @ (X2 @ X3))))))))))))) (Tlist.GENLIST_NUMERALS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X1) @ cHOL4.num.0)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X1) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (((cHOL4.list.GENLIST_AUX @ X1) @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.list.NIL)))))))) (Tlist.GENLIST_GENLIST_AUX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X0) @ X1)) @ (((cHOL4.list.GENLIST_AUX @ X0) @ X1) @ cHOL4.list.NIL))))))) (Tlist.NULL_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.NULL @ ((cHOL4.list.GENLIST @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))))) (Tlist.GENLIST_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.list.CONS @ (X1 @ cHOL4.num.0)) @ ((cHOL4.list.GENLIST @ ((cHOL4.combin.o @ X1) @ cHOL4.num.SUC)) @ X0)))))))) (Tlist.ZIP_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ X2)) @ ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.list.GENLIST @ X1) @ X2)))) @ ((cHOL4.list.GENLIST @ (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.list.EL @ X3) @ X0)) @ (X1 @ X3)))) @ X2)))))))))) (Tlist.TL_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.TL @ ((cHOL4.list.GENLIST @ X0) @ (cHOL4.num.SUC @ X1)))) @ ((cHOL4.list.GENLIST @ ((cHOL4.combin.o @ X0) @ cHOL4.num.SUC)) @ X1))))))) (Tlist.EXISTS_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X1) @ ((cHOL4.list.GENLIST @ X0) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (X1 @ (X0 @ X3))))))))))))) (Tlist.EVERY_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X1) @ ((cHOL4.list.GENLIST @ X0) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (X1 @ (X0 @ X3))))))))))))) (Tlist.GENLIST_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.GENLIST @ X0) @ X2)) @ ((cHOL4.list.GENLIST @ (^[X3]: (X0 @ ((cHOL4.arithmetic.+ @ X3) @ X2)))) @ X1)))))))))) (Tlist.GENLIST_FUN_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.GENLIST @ X1) @ X0)) @ ((cHOL4.list.GENLIST @ X2) @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3))))))))))))) (Tlist.HD_GENLIST_COR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.HD @ ((cHOL4.list.GENLIST @ X1) @ X0))) @ (X1 @ cHOL4.num.0)))))))) (Tlist.HD_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.HD @ ((cHOL4.list.GENLIST @ X1) @ (cHOL4.num.SUC @ X0)))) @ (X1 @ cHOL4.num.0))))))) (Tlist.EL_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X2) @ ((cHOL4.list.GENLIST @ X0) @ X1))) @ (X0 @ X2)))))))))) (Tlist.MAP_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.GENLIST @ X1) @ X2))) @ ((cHOL4.list.GENLIST @ ((cHOL4.combin.o @ X0) @ X1)) @ X2))))))))) (Tlist.GENLIST_AUX_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.GENLIST_AUX @ X0) @ cHOL4.num.0) @ X1)) @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.GENLIST_AUX @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X1)) @ (((cHOL4.list.GENLIST_AUX @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.list.CONS @ (X0 @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.GENLIST_AUX @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X1)) @ (((cHOL4.list.GENLIST_AUX @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ ((cHOL4.list.CONS @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ X1)))))))))))) (Tlist.LENGTH_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.GENLIST @ X0) @ X1))) @ X1)))))) (Tlist.SNOC_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2)))))))))) (Tlist.SNOC_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.list.SNOC @ X2) @ X1))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tlist.SNOC_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.list.NIL)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X2 @ ((cHOL4.list.SNOC @ X3) @ X4))) @ (((X1 @ X3) @ X4) @ (X2 @ X4))))))))))))))) (Tlist.REVERSE_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.list.REVERSE @ X1)))))))) (Tlist.REVERSE_SNOC_DEF,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.REVERSE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.SNOC @ X0) @ (cHOL4.list.REVERSE @ X1))))))))) (Tlist.SNOC_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ X1)) @ ((cHOL4.list.SNOC @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tlist.MEM_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.SNOC @ X1) @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))) (Tlist.EXISTS_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.bool.\/ @ (X0 @ X1)) @ ((cHOL4.list.EXISTS @ X0) @ X2)))))))))) (Tlist.EVERY_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ X0) @ X2)) @ (X0 @ X1)))))))))) (Tlist.APPEND_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.list.SNOC @ X1) @ ((cHOL4.list.APPEND @ X0) @ X2)))))))))) (Tlist.EL_LENGTH_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.SNOC @ X1) @ X0))) @ X1)))))) (Tlist.EL_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.list.SNOC @ X2) @ X1))) @ ((cHOL4.list.EL @ X0) @ X1)))))))))) (Tlist.MAP_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.list.SNOC @ (X0 @ X1)) @ ((cHOL4.list.MAP @ X0) @ X2)))))))))) (Tlist.LIST_TO_SET_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.pred_set.INSERT @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tlist.SNOC_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)))))))) (Tlist.FRONT_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.FRONT @ ((cHOL4.list.SNOC @ X0) @ X1))) @ X1)))))) (Tlist.LAST_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.SNOC @ X0) @ X1))) @ X0)))))) (Tlist.LENGTH_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.SNOC @ X0) @ X1))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X1)))))))) (Tlist.isPREFIX_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ cHOL4.list.NIL) @ X3)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.CONS @ X6) @ X2)) @ cHOL4.list.NIL)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.CONS @ X5) @ X1)) @ ((cHOL4.list.CONS @ X4) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X4)) @ ((cHOL4.list.isPREFIX @ X1) @ X0)))))))))))))))))))) (Tlist.ITSET_eq_FOLDL_SET_TO_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X1) @ X0) @ X2)) @ (((cHOL4.list.FOLDL @ (cHOL4.combin.C @ X1)) @ X2) @ (cHOL4.list.SET_TO_LIST @ X0))))))))))) (Tlist.ALL_DISTINCT_SET_TO_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.list.ALL_DISTINCT @ (cHOL4.list.SET_TO_LIST @ X0)))))) (Tlist.SET_TO_LIST_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SET_TO_LIST @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))) (Tlist.MEM_SET_TO_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.SET_TO_LIST @ X0)))) @ ((cHOL4.bool.IN @ X1) @ X0)))))))) (Tlist.SET_TO_LIST_IN_MEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.SET_TO_LIST @ X0)))))))))) (Tlist.SET_TO_LIST_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.SET_TO_LIST @ X0))) @ (cHOL4.pred_set.CARD @ X0)))))) (Tlist.SET_TO_LIST_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.SET_TO_LIST @ X0))) @ X0))))) (Tlist.SET_TO_LIST_EMPTY,((cHOL4.min.= @ (cHOL4.list.SET_TO_LIST @ cHOL4.pred_set.EMPTY)) @ cHOL4.list.NIL)) (Tlist.SET_TO_LIST_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))) @ (X0 @ (cHOL4.pred_set.REST @ X1)))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tlist.SET_TO_LIST_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.SET_TO_LIST @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ (cHOL4.pred_set.CHOICE @ X0)) @ (cHOL4.list.SET_TO_LIST @ (cHOL4.pred_set.REST @ X0))))))))) (Tlist.LIST_TO_SET_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.FILTER @ X1) @ X0))) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X1 @ X2))))) @ (cHOL4.list.LIST_TO_SET @ X0)))))))) (Tlist.LIST_TO_SET_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ X0) @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tlist.LIST_TO_SET_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ cHOL4.list.NIL)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.pred_set.INSERT @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))))))))) (Tlist.LIST_TO_SET_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.REVERSE @ X0))) @ (cHOL4.list.LIST_TO_SET @ X0))))) (Tlist.ALL_DISTINCT_CARD_LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.list.LENGTH @ X0)))))) (Tlist.CARD_LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.pred_set.CARD @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.list.LENGTH @ X0))))) (Tlist.INJ_MAP_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X1)) @ (cHOL4.list.LIST_TO_SET @ X2))) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ X1)) @ ((cHOL4.list.MAP @ X0) @ X2)))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tlist.SUM_MAP_MEM_bound,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X2))) @ ((cHOL4.arithmetic.<= @ (X0 @ X1)) @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X0) @ X2))))))))))) (Tlist.SUM_IMAGE_LIST_TO_SET_upper_bound,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Tlist.FINITE_LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.list.LIST_TO_SET @ X0))))) (Tlist.LIST_TO_SET_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ X0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))) (Tlist.UNION_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X0)) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X0) @ X1)))))))) (Tlist.LIST_TO_SET_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.list.LIST_TO_SET @ X0)) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tlist.LRC_MEM_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.list.LRC @ X5) @ ((cHOL4.list.CONS @ X3) @ X2)) @ X1) @ X0)) @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X2)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((X5 @ X6) @ X4)) @ ((((cHOL4.list.LRC @ X5) @ X7) @ X1) @ X6)))))))))))))))))))) (Tlist.LRC_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.list.LRC @ X4) @ X2) @ X1) @ X0)) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X2)))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((X4 @ X3) @ X5)) @ ((((cHOL4.list.LRC @ X4) @ X6) @ X5) @ X0)))))))))))))))))) (Tlist.NRC_LRC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.arithmetic.NRC @ X3) @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((((cHOL4.list.LRC @ X3) @ X4) @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X2)))))))))))))) (Tlist.ALL_DISTINCT_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ (cHOL4.list.REVERSE @ X0))) @ (cHOL4.list.ALL_DISTINCT @ X0))))) (Tlist.ALL_DISTINCT_ZIP_SWAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))) @ (cHOL4.list.ALL_DISTINCT @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X0))))))))) (Tlist.ALL_DISTINCT_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))) @ (cHOL4.list.ALL_DISTINCT @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1))))))))) (Tlist.ALL_DISTINCT_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))) (Tlist.ALL_DISTINCT_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1)))))))))))))) (Tlist.ALL_DISTINCT_EL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ X0)) @ ((cHOL4.list.EL @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tlist.EL_ALL_DISTINCT_EL_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ X0)) @ ((cHOL4.list.EL @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Tlist.ALL_DISTINCT_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ X0) @ X1))) @ (cHOL4.list.ALL_DISTINCT @ X1))))))) (Tlist.FILTER_ALL_DISTINCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.list.ALL_DISTINCT @ X1)) @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.FILTER @ X0) @ X1)))))))) (Tlist.ALL_DISTINCT_FILTER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ (cHOL4.min.= @ X1)) @ X0)) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))))) (Tlist.EVERY2_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X3 @ X4) @ X5)) @ ((X2 @ X4) @ X5))))))) @ ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X3) @ X1) @ X0)) @ (((cHOL4.list.LIST_REL @ X2) @ X1) @ X0)))))))))))) (Tlist.EVERY2_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2)))))))))) (Tlist.EVERY2_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X2) @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.list.EVERY @ (cHOL4.pair.UNCURRY @ X2)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))) (Tlist.MAP_EQ_EVERY2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ X2)) @ ((cHOL4.list.MAP @ X1) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ (cHOL4.list.LENGTH @ X3))) @ (((cHOL4.list.LIST_REL @ (^[X4]: (^[X5]: ((cHOL4.min.= @ (X0 @ X4)) @ (X1 @ X5))))) @ X2) @ X3)))))))))))) (Tlist.EVERY2_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X7) @ (cHOL4.list.LIST_TO_SET @ X3)))) @ ((cHOL4.min.= @ ((X4 @ X6) @ X7)) @ ((X5 @ X6) @ X7)))))))))) @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X4) @ X0) @ X2)) @ (((cHOL4.list.LIST_REL @ X5) @ X1) @ X3)))))))))))))))) (Tlist.FOLDL2_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.list.FOLDL2 @ X2) @ X3) @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X3]: (cHOL4.pair.UNCURRY @ (X2 @ X3)))) @ X3) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))))) (Tlist.FOLDL2_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X9) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X10) @ (cHOL4.list.LIST_TO_SET @ X3)))) @ ((cHOL4.min.= @ (((X6 @ X8) @ X9) @ X10)) @ (((X7 @ X8) @ X9) @ X10))))))))))))) @ ((cHOL4.min.= @ ((((cHOL4.list.FOLDL2 @ X6) @ X4) @ X0) @ X2)) @ ((((cHOL4.list.FOLDL2 @ X7) @ X5) @ X1) @ X3)))))))))))))))))))) (Tlist.FOLDL2_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.list.FOLDL2 @ X0) @ X5) @ ((cHOL4.list.CONS @ X4) @ X3)) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((((cHOL4.list.FOLDL2 @ X0) @ (((X0 @ X5) @ X4) @ X2)) @ X3) @ X1))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.list.FOLDL2 @ X0) @ X5) @ cHOL4.list.NIL) @ X1)) @ X5)))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.list.FOLDL2 @ X0) @ X5) @ ((cHOL4.list.CONS @ X7) @ X6)) @ cHOL4.list.NIL)) @ X5)))))))))))) (Tlist.FOLDL2_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((((X0 @ X1) @ (((X1 @ X2) @ X3) @ X5)) @ X4) @ X6)) @ ((((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: ((((X0 @ X1) @ X2) @ cHOL4.list.NIL) @ X6)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ X7) @ X8)) @ cHOL4.list.NIL)))))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: ((((X0 @ X9) @ X10) @ X11) @ X12))))))))))))) (Tlist.DROP_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X1) @ X0)) @ cHOL4.list.NIL)) @ ((cHOL4.arithmetic.>= @ X1) @ (cHOL4.list.LENGTH @ X0)))))))) (Tlist.MEM_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.DROP @ X2) @ X1)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.EL @ X2) @ X1)))) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.DROP @ (cHOL4.num.SUC @ X2)) @ X1)))))))))))) (Tlist.LENGTH_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.DROP @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0))))))) (Tlist.TAKE_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.TAKE @ X0) @ X1)) @ ((cHOL4.list.DROP @ X0) @ X1))) @ X1)))))) (Tlist.DROP_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ cHOL4.num.0) @ X0)) @ X0)))) (Tlist.TAKE_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X2) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.list.LENGTH @ X1))) @ X0))))))))))) (Tlist.TAKE_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X2) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ ((cHOL4.list.TAKE @ X2) @ X1)))))))))) (Tlist.LENGTH_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.TAKE @ X0) @ X1))) @ X0))))))) (Tlist.TAKE_LENGTH_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.list.LENGTH @ X0)) @ X0)) @ X0)))) (Tlist.TAKE_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) (Tlist.LAST_APPEND_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.CONS @ X0) @ X2)))) @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X0) @ X2)))))))))) (Tlist.LAST_CONS_cond,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ X1) @ (cHOL4.list.LAST @ X0)))))))) (Tlist.APPEND_FRONT_LAST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ (cHOL4.list.FRONT @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.list.LAST @ X0)) @ cHOL4.list.NIL))) @ X0))))) (Tlist.FRONT_CONS_EQ_NIL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ X1))) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.list.NIL) @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ X1)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.NULL @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ X1)))) @ (cHOL4.list.NULL @ X1))))))))) (Tlist.LENGTH_FRONT_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ X1)))) @ (cHOL4.list.LENGTH @ X1))))))) (Tlist.FRONT_CONS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X1) @ X2)))))))))))) (Tlist.LAST_EL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.list.LAST @ X0)) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ (cHOL4.list.LENGTH @ X0))) @ X0)))))) (Tlist.LAST_CONS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)))) @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X1) @ X2))))))))))) (Tlist.FILTER_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X1) @ (cHOL4.list.REVERSE @ X0))) @ (cHOL4.list.REVERSE @ ((cHOL4.list.FILTER @ X1) @ X0)))))))) (Tlist.REVERSE_EQ_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL)))))))) (Tlist.REVERSE_EQ_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (Tlist.LENGTH_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.REVERSE @ X0))) @ (cHOL4.list.LENGTH @ X0))))) (Tlist.MEM_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.REVERSE @ X0)))) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0)))))))) (Tlist.REVERSE_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tlist.REVERSE_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ (cHOL4.list.REVERSE @ X0))) @ X0)))) (Tlist.REVERSE_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.list.APPEND @ (cHOL4.list.REVERSE @ X1)) @ (cHOL4.list.REVERSE @ X0)))))))) (Tlist.LIST_REL_EVERY_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.list.EVERY @ (cHOL4.pair.UNCURRY @ X0)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))) (Tlist.SUM_MAP_PLUS_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ (cHOL4.list.LENGTH @ X4))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X2 @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ ((cHOL4.arithmetic.+ @ (X1 @ X5)) @ (X0 @ X6))))))))) @ ((cHOL4.min.= @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X2) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X3) @ X4))))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X1) @ X3))) @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ X0) @ X4)))))))))))))))) (Tlist.MEM_EL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.EL @ X2) @ X0))))))))))) (Tlist.MAP_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.pair.SND) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ ((cHOL4.combin.o @ X3) @ cHOL4.pair.FST)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.list.MAP @ X3) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ ((cHOL4.combin.o @ X2) @ cHOL4.pair.SND)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.list.MAP @ X2) @ X0))))))))))))))) (Tlist.MAP2_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X2) @ X0) @ X1)) @ ((cHOL4.list.MAP @ (cHOL4.pair.UNCURRY @ X2)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))) (Tlist.MAP2_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X2) @ X0) @ X1)) @ ((cHOL4.list.MAP @ (cHOL4.pair.UNCURRY @ X2)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))) (Tlist.EL_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X2) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.EL @ X2) @ X0)) @ ((cHOL4.list.EL @ X2) @ X1))))))))))) (Tlist.MEM_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.EL @ X3) @ X0)) @ ((cHOL4.list.EL @ X3) @ X1))))))))))))))) (Tlist.ZIP_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.list.MAP @ X2) @ X0)) @ X1))) @ ((cHOL4.list.MAP @ (^[X4]: ((cHOL4.pair.|comma| @ (X2 @ (cHOL4.pair.FST @ X4))) @ (cHOL4.pair.SND @ X4)))) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1))))) @ ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.list.MAP @ X3) @ X1)))) @ ((cHOL4.list.MAP @ (^[X4]: ((cHOL4.pair.|comma| @ (cHOL4.pair.FST @ X4)) @ (X3 @ (cHOL4.pair.SND @ X4))))) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1))))))))))))))) (Tlist.UNZIP_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.UNZIP @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tlist.ZIP_UNZIP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.ZIP @ (cHOL4.list.UNZIP @ X0))) @ X0)))) (Tlist.LENGTH_UNZIP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.pair.FST @ (cHOL4.list.UNZIP @ X0)))) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.pair.SND @ (cHOL4.list.UNZIP @ X0)))) @ (cHOL4.list.LENGTH @ X0)))))) (Tlist.LENGTH_ZIP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ (cHOL4.list.LENGTH @ X1))))))))) (Tlist.UNZIP_MAP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.UNZIP @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X0)) @ ((cHOL4.list.MAP @ cHOL4.pair.SND) @ X0)))))) (Tlist.UNZIP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.UNZIP @ cHOL4.list.NIL)) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.list.UNZIP @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X1) @ X3)) @ ((cHOL4.list.CONS @ X0) @ X4)))))) @ (cHOL4.list.UNZIP @ X2))))))))))) (Tlist.EVERY_MONOTONIC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X3)) @ ((cHOL4.list.EVERY @ X1) @ X3)))))))))) (Tlist.EVERY_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X2) @ X0)) @ ((cHOL4.list.EVERY @ X3) @ X1)))))))))))) (Tlist.EXISTS_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X2) @ X0)) @ ((cHOL4.list.EXISTS @ X3) @ X1)))))))))))) (Tlist.MAP2_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X7) @ (cHOL4.list.LIST_TO_SET @ X3)))) @ ((cHOL4.min.= @ ((X4 @ X6) @ X7)) @ ((X5 @ X6) @ X7)))))))))) @ ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X4) @ X0) @ X2)) @ (((cHOL4.list.MAP2 @ X5) @ X1) @ X3)))))))))))))))) (Tlist.MAP_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X2) @ X0)) @ ((cHOL4.list.MAP @ X3) @ X1)))))))))))) (Tlist.FOLDL_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ ((X4 @ X7) @ X6)) @ ((X5 @ X7) @ X6)))))))))) @ ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X4) @ X2) @ X0)) @ (((cHOL4.list.FOLDL @ X5) @ X3) @ X1)))))))))))))))) (Tlist.FOLDR_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ ((X4 @ X6) @ X7)) @ ((X5 @ X6) @ X7)))))))))) @ ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X4) @ X2) @ X0)) @ (((cHOL4.list.FOLDR @ X5) @ X3) @ X1)))))))))))))))) (Tlist.list_size_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.list.list_size @ X2) @ X0)) @ ((cHOL4.list.list_size @ X3) @ X1)))))))))))) (Tlist.LIST_REL_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2)))))))))) (Tlist.LIST_REL_MAP2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ (^[X4]: (^[X5]: ((X3 @ X4) @ X5)))) @ X1) @ ((cHOL4.list.MAP @ X2) @ X0))) @ (((cHOL4.list.LIST_REL @ (^[X4]: (^[X6]: ((X3 @ X4) @ (X2 @ X6))))) @ X1) @ X0))))))))))) (Tlist.LIST_REL_MAP1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X3) @ ((cHOL4.list.MAP @ X2) @ X1)) @ X0)) @ (((cHOL4.list.LIST_REL @ ((cHOL4.combin.o @ X3) @ X2)) @ X1) @ X0))))))))))) (Tlist.LIST_REL_CONJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ ((X3 @ X4) @ X5)) @ ((X2 @ X4) @ X5))))) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.list.LIST_REL @ (^[X4]: (^[X5]: ((X3 @ X4) @ X5)))) @ X1) @ X0)) @ (((cHOL4.list.LIST_REL @ (^[X4]: (^[X5]: ((X2 @ X4) @ X5)))) @ X1) @ X0)))))))))))) (Tlist.LIST_REL_CONS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X3) @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((X3 @ X4) @ X2)) @ (((cHOL4.list.LIST_REL @ X3) @ X5) @ X1))))))))))))))))) (Tlist.LIST_REL_CONS1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X3) @ ((cHOL4.list.CONS @ X2) @ X1)) @ X0)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((X3 @ X2) @ X4)) @ (((cHOL4.list.LIST_REL @ X3) @ X1) @ X5))))))))))))))))) (Tlist.LIST_REL_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X2) @ cHOL4.list.NIL) @ X1)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X2) @ cHOL4.list.NIL) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))))))) (Tlist.LIST_REL_mono,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X3 @ X4) @ X5)) @ ((X2 @ X4) @ X5))))))) @ ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X3) @ X1) @ X0)) @ (((cHOL4.list.LIST_REL @ X2) @ X1) @ X0)))))))))))) (Tlist.LIST_REL_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X4) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X4) @ ((cHOL4.list.CONS @ X3) @ X2)) @ cHOL4.list.NIL)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X4) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X4) @ ((cHOL4.list.CONS @ X3) @ X2)) @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((X4 @ X3) @ X1)) @ (((cHOL4.list.LIST_REL @ X4) @ X2) @ X0))))))))))))))))) (Tlist.WF_LIST_PRED,(cHOL4.relation.WF @ (^[X0]: (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X0)))))))) (Tlist.NULL_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.NULL @ ((cHOL4.list.FILTER @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.bool.~ @ (X0 @ X2))))))))))) (Tlist.SUM_eq_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.SUM @ X0)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) (Tlist.EL_simp_restricted,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.list.EL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ X1)))))))))) (Tlist.EL_restricted,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.EL @ cHOL4.num.0)) @ cHOL4.list.HD)) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.list.EL @ X0) @ X1)))))))))) (Tlist.EL_simp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ X1)) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ X1)) @ ((cHOL4.list.EL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.list.TL @ X1))))))))) (Tlist.EL_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (cHOL4.list.HD @ X0)) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ X1)) @ (cHOL4.list.TL @ X0))))))))) (Tlist.NOT_NULL_MEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0)))))))) (Tlist.FILTER_COND_REWRITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X1) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X1) @ ((cHOL4.list.CONS @ X2) @ X0))) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.FILTER @ X1) @ X0))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X1) @ ((cHOL4.list.CONS @ X2) @ X0))) @ ((cHOL4.list.FILTER @ X1) @ X0)))))))))))) (Tlist.EVERY_FILTER_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X2)) @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.FILTER @ X1) @ X2)))))))))) (Tlist.EVERY_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.FILTER @ X1) @ X2))) @ ((cHOL4.list.EVERY @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ (X0 @ X3)))) @ X2))))))))) (Tlist.FILTER_EQ_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X4)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X5)) @ X3))))))))))))))))) (Tlist.MEM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ cHOL4.list.NIL))) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X2)))))))))))) (Tlist.FILTER_APPEND_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.FILTER @ X0) @ X1)) @ ((cHOL4.list.FILTER @ X0) @ X2)))))))))) (Tlist.FILTER_EQ_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X4) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X4)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X5)) @ X3)) @ (X0 @ X2)))))))))))))))))) (Tlist.FILTER_NEQ_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.bool.~ @ (X0 @ X2))))))))))) (Tlist.FILTER_EQ_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ X1)) @ ((cHOL4.list.EVERY @ X0) @ X1))))))) (Tlist.FILTER_NEQ_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ cHOL4.list.NIL))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (X0 @ X2)))))))))) (Tlist.FILTER_EQ_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.list.EVERY @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X1))))))) (Tlist.LENGTH_TL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.TL @ X0))) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tlist.FOLDR_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ (^[X3]: (^[X4]: ((cHOL4.list.CONS @ (X0 @ X3)) @ X4)))) @ X2) @ X1)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.MAP @ X0) @ X1)) @ X2))))))))) (Tlist.FOLDL_EQ_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.operator.COMM @ X0))) @ ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X2) @ X1)) @ (((cHOL4.list.FOLDR @ X0) @ X2) @ X1)))))))))) (Tlist.LIST_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X2) @ X0)) @ ((cHOL4.list.EL @ X2) @ X1))))))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tlist.LIST_EQ_REWRITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X2) @ X0)) @ ((cHOL4.list.EL @ X2) @ X1)))))))))))) (Tlist.MEM_SPLIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X0) @ X3))))))))))))) (Tlist.APPEND_EQ_SELF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X1)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))))))) (Tlist.APPEND_11_LENGTH,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))))) (Tlist.APPEND_LENGTH_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X2)) @ ((cHOL4.list.APPEND @ X1) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X2) @ X3)))))))))))))) (Tlist.APPEND_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X1) @ X0)) @ ((cHOL4.list.APPEND @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tlist.APPEND_EQ_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X1) @ X0)) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))))))))) (Tlist.APPEND_eq_NIL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.list.NIL) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))))))))) (Tlist.CONS_ACYCLIC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X1) @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X1) @ X0)) @ X0)))))))) (Tlist.LENGTH_EQ_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (X0 @ X1))))) @ (X0 @ cHOL4.list.NIL))))) (Tlist.LENGTH_EQ_NUM_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X5)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X6) @ X7))))))))))))))))))) (Tlist.LENGTH_EQ_NUM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.num.SUC @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X5)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X6) @ X7)))))))))))))))))) (Tlist.LENGTH_EQ_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X3) @ X4)))))))))))))))) (Tlist.LENGTH_EQ_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ (cHOL4.num.SUC @ X1))) @ (X0 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ X1)) @ ((^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.list.CONS @ X3) @ X2))))) @ X2)))))))))) (Tlist.LENGTH_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.num.SUC @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))))) (Tlist.NULL_LENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.NULL @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0))))) (Tlist.NULL_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.NULL @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (Tlist.LENGTH_NIL_SYM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (Tlist.LENGTH_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (Tlist.MEM_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.MAP @ X1) @ X0)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (X1 @ X3))) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X0))))))))))))) (Tlist.NOT_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.list.EXISTS @ X0) @ X1))) @ ((cHOL4.list.EVERY @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1))))))) (Tlist.NOT_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.list.EVERY @ X0) @ X1))) @ ((cHOL4.list.EXISTS @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1))))))) (Tlist.EXISTS_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ ((cHOL4.list.EXISTS @ X0) @ X2)))))))))) (Tlist.EVERY_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ X0) @ X1)) @ ((cHOL4.list.EVERY @ X0) @ X2)))))))))) (Tlist.FLAT_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.list.APPEND @ (cHOL4.list.FLAT @ X0)) @ (cHOL4.list.FLAT @ X1)))))))) (Tlist.MEM_FLAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.FLAT @ X1)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))) (Tlist.MEM_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.FILTER @ X0) @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Tlist.MEM_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X1) @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))) (Tlist.EXISTS_NOT_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.list.EVERY @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X1)))))))) (Tlist.EVERY_NOT_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.list.EXISTS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X1)))))))) (Tlist.MONO_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X2) @ X0)) @ ((cHOL4.list.EXISTS @ X1) @ X0)))))))))) (Tlist.EXISTS_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ (^[X2]: X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ X0))))))) (Tlist.EXISTS_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ ((cHOL4.list.MAP @ X1) @ X2))) @ ((cHOL4.list.EXISTS @ (^[X3]: (X0 @ (X1 @ X3)))) @ X2))))))))) (Tlist.EXISTS_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (X0 @ X2)))))))))) (Tlist.MONO_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X2) @ X0)) @ ((cHOL4.list.EVERY @ X1) @ X0)))))))))) (Tlist.EVERY_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ (^[X2]: X0)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ X0))))))) (Tlist.EVERY_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.MAP @ X1) @ X2))) @ ((cHOL4.list.EVERY @ (^[X3]: (X0 @ (X1 @ X3)))) @ X2))))))))) (Tlist.EVERY_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (X0 @ X2)))))))))) (Tlist.EVERY_CONJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ X3)) @ (X1 @ X3)))) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ X0) @ X2)) @ ((cHOL4.list.EVERY @ X1) @ X2)))))))))) (Tlist.EVERY_EL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X0))) @ (X1 @ ((cHOL4.list.EL @ X2) @ X0))))))))))) (Tlist.MAP_TL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0))) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.TL @ X0))) @ (cHOL4.list.TL @ ((cHOL4.list.MAP @ X1) @ X0))))))))) (Tlist.EL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.list.MAP @ X2) @ X1))) @ (X2 @ ((cHOL4.list.EL @ X0) @ X1))))))))))) (Tlist.MAP_MAP_o,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.MAP @ X1) @ X2))) @ ((cHOL4.list.MAP @ ((cHOL4.combin.o @ X0) @ X1)) @ X2))))))))) (Tlist.MAP_o,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.MAP @ ((cHOL4.combin.o @ X0) @ X1))) @ ((cHOL4.combin.o @ (cHOL4.list.MAP @ X0)) @ (cHOL4.list.MAP @ X1)))))))) (Tlist.MAP_EQ_f,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ X2)) @ ((cHOL4.list.MAP @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X2))) @ ((cHOL4.min.= @ (X0 @ X3)) @ (X1 @ X3))))))))))))) (Tlist.MAP_EQ_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X1) @ X0)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.list.NIL) @ ((cHOL4.list.MAP @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))))) (Tlist.LENGTH_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.MAP @ X1) @ X0))) @ (cHOL4.list.LENGTH @ X0))))))) (Tlist.MAP_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ (^[X1]: X1)) @ X0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ cHOL4.combin.I) @ X0)) @ X0))))) (Tlist.MAP_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.MAP @ X0) @ X1)) @ ((cHOL4.list.MAP @ X0) @ X2)))))))))) (Tlist.LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))))))) (Tlist.APPEND_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X2))))))))) (Tlist.APPEND_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ cHOL4.list.NIL)) @ X0)))) (Tlist.CONS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0))) @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ (cHOL4.list.HD @ X0)) @ (cHOL4.list.TL @ X0))) @ X0))))) (Tlist.EQ_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X0) @ X2)) @ ((cHOL4.list.CONS @ X1) @ X3))))))))))))) (Tlist.NOT_EQ_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X0) @ X2)) @ ((cHOL4.list.CONS @ X1) @ X3))))))))))))) (Tlist.LIST_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X2) @ X0)) @ ((cHOL4.list.CONS @ X3) @ X1))))))))))))) (Tlist.NOT_CONS_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X1) @ X0)) @ cHOL4.list.NIL))))))) (Tlist.NOT_NIL_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X0)))))))) (Tlist.CONS_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X0) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tlist.list_case_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.list_CASE @ X2) @ X1) @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X2)) @ X1) @ ((X0 @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2))))))))))) (Tlist.list_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))) (Tlist.list_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X4) @ X0))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ ((cHOL4.list.CONS @ X6) @ X7))) @ ((cHOL4.min.= @ ((X5 @ X6) @ X7)) @ ((X1 @ X6) @ X7)))))))))) @ ((cHOL4.min.= @ (((cHOL4.list.list_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.list.list_CASE @ X3) @ X0) @ X1)))))))))))))))) (Tlist.list_distinct,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X0)))))))) (Tlist.list_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X0) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tlist.datatype_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((X0 @ cHOL4.list.NIL) @ cHOL4.list.CONS))))) (Tlist.list_Axiom_old,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.list.NIL)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X2 @ ((cHOL4.list.CONS @ X3) @ X4))) @ (((X1 @ (X2 @ X4)) @ X3) @ X4)))))))))))))) (Tlist.LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ cHOL4.list.NIL)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.pred_set.INSERT @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))))))))) (Tlist.IN_LIST_TO_SET,cHOL4.bool.T) (Tlist.MAP2_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((X0 @ X1) @ X3) @ X5)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (((X0 @ X1) @ cHOL4.list.NIL) @ X6)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X1) @ ((cHOL4.list.CONS @ X7) @ X8)) @ cHOL4.list.NIL)))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (((X0 @ X9) @ X10) @ X11))))))))))) (Tlist.MAP2_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X4) @ ((cHOL4.list.CONS @ X3) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X0))) @ ((cHOL4.list.CONS @ ((X4 @ X3) @ X2)) @ (((cHOL4.list.MAP2 @ X4) @ X1) @ X0)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X4) @ cHOL4.list.NIL) @ X5)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X4) @ ((cHOL4.list.CONS @ X7) @ X6)) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))))))))) (Tlist.MAP2,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.list.MAP2 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((cHOL4.list.CONS @ ((X1 @ X2) @ X4)) @ (((cHOL4.list.MAP2 @ X1) @ X3) @ X5))))))))))))))) (Tlist.NULL,((cHOL4.bool./\ @ (cHOL4.list.NULL @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (cHOL4.list.NULL @ ((cHOL4.list.CONS @ X0) @ X1))))))))) (Tlist.list_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.list.CONS @ X2) @ X1))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tlist.list_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.list.NIL)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X2 @ ((cHOL4.list.CONS @ X3) @ X4))) @ (((X1 @ X3) @ X4) @ (X2 @ X4))))))))))))))) (Tlist.list_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.list.CONS @ X2) @ X1))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tlist.LIST_REL_EL_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X1))) @ ((X0 @ ((cHOL4.list.EL @ X3) @ X1)) @ ((cHOL4.list.EL @ X3) @ X2)))))))))))))) (Tlist.LIST_REL_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X3) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.CONS @ X4) @ X6))) @ ((cHOL4.bool./\ @ ((X0 @ X3) @ X4)) @ (((cHOL4.list.LIST_REL @ X0) @ X5) @ X6))))))))))))))))))))) (Tlist.LIST_REL_strongind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.list.LIST_REL @ X0) @ X4) @ X5)) @ ((X1 @ X4) @ X5)))) @ ((X1 @ ((cHOL4.list.CONS @ X2) @ X4)) @ ((cHOL4.list.CONS @ X3) @ X5))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X6) @ X7)) @ ((X1 @ X6) @ X7)))))))))))) (Tlist.LIST_REL_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((X1 @ X4) @ X5))) @ ((X1 @ ((cHOL4.list.CONS @ X2) @ X4)) @ ((cHOL4.list.CONS @ X3) @ X5))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X6) @ X7)) @ ((X1 @ X6) @ X7)))))))))))) (Tlist.LIST_REL_rules,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (((cHOL4.list.LIST_REL @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4))) @ (((cHOL4.list.LIST_REL @ X0) @ ((cHOL4.list.CONS @ X1) @ X3)) @ ((cHOL4.list.CONS @ X2) @ X4))))))))))))))) (Tlist.list_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))) (Tlist.FORALL_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) (Tlist.MEM_SPLIT_APPEND_first,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ X3))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X2)))))))))))))) (Tlist.MEM_SPLIT_APPEND_last,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ X3))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X3)))))))))))))) (Tlist.APPEND_EQ_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X3) @ X2)) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((cHOL4.list.APPEND @ X1) @ X4))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X4) @ X2)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X3) @ X4))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ X4) @ X0)))))))))))))))) (Tlist.APPEND_EQ_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X2) @ X1)) @ ((cHOL4.list.CONS @ X3) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X3) @ X0)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X4) @ X1)))))))))))))))) (Tlist.APPEND_EQ_APPEND_MID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL))) @ X2)) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL))) @ X5))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ X5) @ X0)))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((cHOL4.list.APPEND @ X1) @ X5))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X5) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL))) @ X2)))))))))))))))))) (Tlist.LUPDATE_SEM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.list.LUPDATE @ X0) @ X1) @ X2))) @ (cHOL4.list.LENGTH @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X3) @ (((cHOL4.list.LUPDATE @ X0) @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X1)) @ X0) @ ((cHOL4.list.EL @ X3) @ X2)))))))))))))) (Tlist.EL_LUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X2) @ (((cHOL4.list.LUPDATE @ X1) @ X3) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X0)))) @ X1) @ ((cHOL4.list.EL @ X2) @ X0)))))))))))) (Tlist.LENGTH_LUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.list.LUPDATE @ X0) @ X1) @ X2))) @ (cHOL4.list.LENGTH @ X2))))))))) (Tlist.LUPDATE_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X1) @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X1) @ X3)))))))))))) (Tlist.LUPDATE_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X2) @ X1) @ ((cHOL4.list.SNOC @ X3) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.list.SNOC @ X2) @ X0)) @ ((cHOL4.list.SNOC @ X3) @ (((cHOL4.list.LUPDATE @ X2) @ X1) @ X0))))))))))))) (Tlist.MEM_LUPDATE_E,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (((cHOL4.list.LUPDATE @ X2) @ X3) @ X0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ X0))))))))))))) (Tlist.MEM_LUPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (((cHOL4.list.LUPDATE @ X2) @ X3) @ X0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X4) @ X0)) @ X1)))))))))))))))) (Tlist.LUPDATE_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ X1) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ cHOL4.num.0) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X0) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X2) @ (((cHOL4.list.LUPDATE @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.LUPDATE @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X2) @ (((cHOL4.list.LUPDATE @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X3))))))))))))))) (Tlist.splitAtPki_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERYi @ (^[X4]: ((cHOL4.combin.o @ cHOL4.bool.~) @ (X2 @ X4)))) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((X2 @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.HD @ X1))))) @ ((cHOL4.min.= @ (((cHOL4.list.splitAtPki @ X2) @ X3) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((X3 @ X0) @ X1)))))))))))) (Tlist.splitAtPki_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.splitAtPki @ X2) @ X1) @ X0)) @ (((cHOL4.option.option_CASE @ (cHOL4.while.OLEAST @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X0))) @ ((X2 @ X3) @ ((cHOL4.list.EL @ X3) @ X0)))))) @ ((X1 @ X0) @ cHOL4.list.NIL)) @ (^[X3]: ((X1 @ ((cHOL4.list.TAKE @ X3) @ X0)) @ ((cHOL4.list.DROP @ X3) @ X0)))))))))))) (Tlist.TAKE_LENGTH_TOO_LONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X1) @ X0)) @ X0))))))) (Tlist.DROP_LENGTH_TOO_LONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X1) @ X0)) @ cHOL4.list.NIL))))))) (Tlist.TAKE_splitAtPki,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ X1)) @ (((cHOL4.list.splitAtPki @ ((cHOL4.combin.o @ cHOL4.combin.K) @ (cHOL4.min.= @ X0))) @ cHOL4.combin.K) @ X1))))))) (Tlist.DROP_splitAtPki,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ X1)) @ (((cHOL4.list.splitAtPki @ ((cHOL4.combin.o @ cHOL4.combin.K) @ (cHOL4.min.= @ X0))) @ (cHOL4.combin.K @ cHOL4.combin.I)) @ X1))))))) (Tlist.LAST_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) (Tlist.TAKE_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.TAKE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X3)))))))))))))) (Tlist.DROP_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.DROP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X3))))))))))))) (Tllist.lrep_ok_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.lrep_ok @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ (^[X3]: cHOL4.option.NONE))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (X1 @ X5)) @ ((cHOL4.min.= @ X2) @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ (cHOL4.option.SOME @ X4)) @ (X5 @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))) @ (X1 @ X0)))))))) (Tllist.llist_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.llist.lrep_ok) @ X0)))) (Tllist.llist_absrep,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.llist_abs @ (cHOL4.llist.llist_rep @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.lrep_ok @ X1)) @ ((cHOL4.min.= @ (cHOL4.llist.llist_rep @ (cHOL4.llist.llist_abs @ X1))) @ X1)))))) (Tllist.LNIL,((cHOL4.min.= @ cHOL4.llist.LNIL) @ (cHOL4.llist.llist_abs @ (^[X0]: cHOL4.option.NONE)))) (Tllist.LCONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LCONS @ X0) @ X1)) @ (cHOL4.llist.llist_abs @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.option.SOME @ X0)) @ ((cHOL4.llist.llist_rep @ X1) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tllist.LHD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LHD @ X0)) @ ((cHOL4.llist.llist_rep @ X0) @ cHOL4.num.0))))) (Tllist.LTL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LTL @ X0)) @ (((cHOL4.option.option_CASE @ (cHOL4.llist.LHD @ X0)) @ cHOL4.option.NONE) @ (^[X1]: (cHOL4.option.SOME @ (cHOL4.llist.llist_abs @ (^[X2]: ((cHOL4.llist.llist_rep @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tllist.LNTH,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ cHOL4.num.0) @ X0)) @ (cHOL4.llist.LHD @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ (cHOL4.num.SUC @ X1)) @ X0)) @ (cHOL4.option.OPTION_JOIN @ ((cHOL4.option.OPTION_MAP @ (cHOL4.llist.LNTH @ X1)) @ (cHOL4.llist.LTL @ X0)))))))))) (Tllist.LUNFOLD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LUNFOLD @ X0) @ X1)) @ (((cHOL4.option.option_CASE @ (X0 @ X1)) @ cHOL4.llist.LNIL) @ (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.llist.LCONS @ X4) @ ((cHOL4.llist.LUNFOLD @ X0) @ X3))))))))))))) (Tllist.LTAKE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ cHOL4.num.0) @ X0)) @ (cHOL4.option.SOME @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ (cHOL4.num.SUC @ X1)) @ X0)) @ (((cHOL4.option.option_CASE @ (cHOL4.llist.LHD @ X0)) @ cHOL4.option.NONE) @ (^[X2]: (((cHOL4.option.option_CASE @ ((cHOL4.llist.LTAKE @ X1) @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X0)))) @ cHOL4.option.NONE) @ (^[X3]: (cHOL4.option.SOME @ ((cHOL4.list.CONS @ X2) @ X3))))))))))))) (Tllist.LMAP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LMAP @ X0) @ cHOL4.llist.LNIL)) @ cHOL4.llist.LNIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LMAP @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2))) @ ((cHOL4.llist.LCONS @ (X0 @ X1)) @ ((cHOL4.llist.LMAP @ X0) @ X2))))))))))) (Tllist.LAPPEND,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ cHOL4.llist.LNIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ ((cHOL4.llist.LCONS @ X1) @ X2)) @ X0)) @ ((cHOL4.llist.LCONS @ X1) @ ((cHOL4.llist.LAPPEND @ X2) @ X0))))))))))) (Tllist.LFINITE_def,((cHOL4.min.= @ cHOL4.llist.LFINITE) @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ (X1 @ X3)))))))) @ (X1 @ X0))))) @ (X1 @ X0))))))) (Tllist.llength_rel_def,((cHOL4.min.= @ cHOL4.llist.llength_rel) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.llist.LCONS @ X3) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.num.SUC @ X4))) @ ((X2 @ X5) @ X4))))))))))) @ ((X2 @ X0) @ X1))))))) @ ((X2 @ X0) @ X1)))))))) (Tllist.LLENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.llist.LFINITE @ X0)) @ (cHOL4.option.SOME @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.llist.llength_rel @ X0) @ X1))))) @ cHOL4.option.NONE))))) (Tllist.toList,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.toList @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.llist.LFINITE @ X0)) @ ((cHOL4.llist.LTAKE @ (cHOL4.option.THE @ (cHOL4.llist.LLENGTH @ X0))) @ X0)) @ cHOL4.option.NONE))))) (Tllist.fromList,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.fromList @ cHOL4.list.NIL)) @ cHOL4.llist.LNIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.fromList @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.llist.LCONS @ X0) @ (cHOL4.llist.fromList @ X1))))))))) (Tllist.LDROP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ cHOL4.num.0) @ X0)) @ (cHOL4.option.SOME @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ (cHOL4.num.SUC @ X1)) @ X0)) @ (cHOL4.option.OPTION_JOIN @ ((cHOL4.option.OPTION_MAP @ (cHOL4.llist.LDROP @ X1)) @ (cHOL4.llist.LTL @ X0)))))))))) (Tllist.exists_def,((cHOL4.min.= @ cHOL4.llist.exists) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.llist.LCONS @ X3) @ X4))) @ (X0 @ X3))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.llist.LCONS @ X3) @ X4))) @ (X2 @ X4)))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))))) (Tllist.every_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.every @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.llist.exists @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1)))))))) (Tllist.LFILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LFILTER @ X0) @ X1)) @ (((cHOL4.bool.COND @ (cHOL4.bool.~ @ ((cHOL4.llist.exists @ X0) @ X1))) @ cHOL4.llist.LNIL) @ (((cHOL4.bool.COND @ (X0 @ (cHOL4.option.THE @ (cHOL4.llist.LHD @ X1)))) @ ((cHOL4.llist.LCONS @ (cHOL4.option.THE @ (cHOL4.llist.LHD @ X1))) @ ((cHOL4.llist.LFILTER @ X0) @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X1))))) @ ((cHOL4.llist.LFILTER @ X0) @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X1))))))))))) (Tllist.LFLATTEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.llist.every @ (cHOL4.min.= @ cHOL4.llist.LNIL)) @ X0)) @ cHOL4.llist.LNIL) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.option.THE @ (cHOL4.llist.LHD @ X0))) @ cHOL4.llist.LNIL)) @ (cHOL4.llist.LFLATTEN @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X0)))) @ ((cHOL4.llist.LCONS @ (cHOL4.option.THE @ (cHOL4.llist.LHD @ (cHOL4.option.THE @ (cHOL4.llist.LHD @ X0))))) @ (cHOL4.llist.LFLATTEN @ ((cHOL4.llist.LCONS @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ (cHOL4.option.THE @ (cHOL4.llist.LHD @ X0))))) @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X0))))))))))) (Tllist.LZIP_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LZIP @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.llist.LNIL))) @ cHOL4.llist.LNIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LZIP @ ((cHOL4.pair.|comma| @ cHOL4.llist.LNIL) @ X1))) @ cHOL4.llist.LNIL)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.llist.LZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.llist.LCONS @ X2) @ X4)) @ ((cHOL4.llist.LCONS @ X3) @ X5)))) @ ((cHOL4.llist.LCONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.llist.LZIP @ ((cHOL4.pair.|comma| @ X4) @ X5))))))))))))))) (Tllist.LUNZIP_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LUNZIP @ cHOL4.llist.LNIL)) @ ((cHOL4.pair.|comma| @ cHOL4.llist.LNIL) @ cHOL4.llist.LNIL))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.llist.LUNZIP @ ((cHOL4.llist.LCONS @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ ((cHOL4.llist.LCONS @ X0) @ X3)) @ ((cHOL4.llist.LCONS @ X1) @ X4)))))) @ (cHOL4.llist.LUNZIP @ X2))))))))))) (Tllist.linear_order_to_list_f_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.linear_order_to_list_f @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)) @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ ((cHOL4.set_relation.rrestrict @ X0) @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X0)) @ (cHOL4.set_relation.range @ X0))) @ X1))) @ (cHOL4.pred_set.CHOICE @ X1)))))) @ ((cHOL4.set_relation.minimal_elements @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X0)) @ (cHOL4.set_relation.range @ X0))) @ X0)))))) (Tllist.llist_rep_LCONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.llist_rep @ ((cHOL4.llist.LCONS @ X1) @ X0))) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.option.SOME @ X1)) @ ((cHOL4.llist.llist_rep @ X0) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tllist.LHD_LCONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LHD @ ((cHOL4.llist.LCONS @ X1) @ X0))) @ (cHOL4.option.SOME @ X1))))))) (Tllist.LTL_LCONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LTL @ ((cHOL4.llist.LCONS @ X1) @ X0))) @ (cHOL4.option.SOME @ X0))))))) (Tllist.LHDTL_CONS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ (cHOL4.llist.LTL @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ (cHOL4.option.SOME @ X1)))))))) (Tllist.llist_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2)))))))))) (Tllist.LHD_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ cHOL4.llist.LNIL)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LHD @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ (cHOL4.option.SOME @ X0)))))))) (Tllist.LTL_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LTL @ cHOL4.llist.LNIL)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LTL @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ (cHOL4.option.SOME @ X1)))))))) (Tllist.LCONS_NOT_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.llist.LCONS @ X0) @ X1)) @ cHOL4.llist.LNIL))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.llist.LNIL) @ ((cHOL4.llist.LCONS @ X0) @ X1))))))))) (Tllist.LCONS_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LCONS @ X0) @ X1)) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tllist.LHD_EQ_NONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ X0)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.option.NONE) @ (cHOL4.llist.LHD @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)))))) (Tllist.LTL_EQ_NONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.llist.LTL @ X0)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.option.NONE) @ (cHOL4.llist.LTL @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)))))) (Tllist.LHDTL_EQ_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ X2)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ (cHOL4.llist.LTL @ X2)) @ (cHOL4.option.SOME @ X1))))))))))) (Tllist.LNTH_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X0) @ cHOL4.llist.LNIL)) @ cHOL4.option.NONE)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ cHOL4.num.0) @ ((cHOL4.llist.LCONS @ X1) @ X2))) @ (cHOL4.option.SOME @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.llist.LCONS @ X3) @ X4))) @ ((cHOL4.llist.LNTH @ X0) @ X4))))))))))) (Tllist.llist_ue_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.?! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.llist.LHD @ (X1 @ X2))) @ ((cHOL4.option.OPTION_MAP @ cHOL4.pair.SND) @ (X0 @ X2)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.llist.LTL @ (X1 @ X2))) @ ((cHOL4.option.OPTION_MAP @ ((cHOL4.combin.o @ X1) @ cHOL4.pair.FST)) @ (X0 @ X2))))))))))) (Tllist.llist_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.llist.LHD @ (X1 @ X2))) @ ((cHOL4.option.OPTION_MAP @ cHOL4.pair.SND) @ (X0 @ X2)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.llist.LTL @ (X1 @ X2))) @ ((cHOL4.option.OPTION_MAP @ ((cHOL4.combin.o @ X1) @ cHOL4.pair.FST)) @ (X0 @ X2))))))))))) (Tllist.llist_Axiom_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ (((cHOL4.option.option_CASE @ (X0 @ X2)) @ cHOL4.llist.LNIL) @ (^[X3]: ((cHOL4.pair.pair_CASE @ X3) @ (^[X4]: (^[X5]: ((cHOL4.llist.LCONS @ X5) @ (X1 @ X4))))))))))))))) (Tllist.llist_Axiom_1ue,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.?! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ (((cHOL4.option.option_CASE @ (X0 @ X2)) @ cHOL4.llist.LNIL) @ (^[X3]: ((cHOL4.pair.pair_CASE @ X3) @ (^[X4]: (^[X5]: ((cHOL4.llist.LCONS @ X5) @ (X1 @ X4))))))))))))))) (Tllist.LLIST_BISIMULATION0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X2 @ X3) @ X4)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ X4) @ cHOL4.llist.LNIL))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((cHOL4.llist.LCONS @ X5) @ X6))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ ((cHOL4.llist.LCONS @ X5) @ X7))) @ ((X2 @ X6) @ X7)))))))))))))))))))))))) (Tllist.LLIST_BISIMULATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X2 @ X3) @ X4)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ X4) @ cHOL4.llist.LNIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ X3)) @ (cHOL4.llist.LHD @ X4))) @ ((X2 @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X3))) @ (cHOL4.option.THE @ (cHOL4.llist.LTL @ X4))))))))))))))))))) (Tllist.LLIST_STRONG_BISIMULATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X2 @ X3) @ X4)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X3) @ X4)) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ ((cHOL4.llist.LCONS @ X5) @ X6))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ ((cHOL4.llist.LCONS @ X5) @ X7))) @ ((X2 @ X6) @ X7)))))))))))))))))))))))) (Tllist.LNTH_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X2) @ X0)) @ ((cHOL4.llist.LNTH @ X2) @ X1)))))))))) (Tllist.LTAKE_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ cHOL4.num.0) @ X0)) @ (cHOL4.option.SOME @ cHOL4.list.NIL))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ (cHOL4.num.SUC @ X1)) @ cHOL4.llist.LNIL)) @ cHOL4.option.NONE)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ ((cHOL4.option.OPTION_MAP @ (cHOL4.list.CONS @ X2)) @ ((cHOL4.llist.LTAKE @ X1) @ X3)))))))))))) (Tllist.LTAKE_SNOC_LNTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ (cHOL4.num.SUC @ X0)) @ X1)) @ (((cHOL4.option.option_CASE @ ((cHOL4.llist.LTAKE @ X0) @ X1)) @ cHOL4.option.NONE) @ (^[X2]: (((cHOL4.option.option_CASE @ ((cHOL4.llist.LNTH @ X0) @ X1)) @ cHOL4.option.NONE) @ (^[X3]: (cHOL4.option.SOME @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))))))) (Tllist.LTAKE_LNTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X0) @ X1)) @ cHOL4.option.NONE))))))) (Tllist.LTAKE_NIL_EQ_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X1) @ cHOL4.llist.LNIL)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))))) (Tllist.LTAKE_NIL_EQ_NONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ cHOL4.llist.LNIL)) @ cHOL4.option.NONE)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) (Tllist.LTAKE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X2) @ X0)) @ ((cHOL4.llist.LTAKE @ X2) @ X1)))))))))) (Tllist.LTAKE_CONS_EQ_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2))) @ cHOL4.option.NONE)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X3) @ X2)) @ cHOL4.option.NONE)))))))))))) (Tllist.LTAKE_CONS_EQ_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2))) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X3) @ cHOL4.list.NIL))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X4) @ X2)) @ (cHOL4.option.SOME @ X5))) @ ((cHOL4.min.= @ X3) @ ((cHOL4.list.CONS @ X1) @ X5))))))))))))))))))) (Tllist.LTAKE_EQ_SOME_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ ((cHOL4.llist.LCONS @ X3) @ X1))) @ (cHOL4.option.SOME @ X4)))))))))))))) (Tllist.LMAP_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LMAP @ X0) @ ((cHOL4.llist.LAPPEND @ X1) @ X2))) @ ((cHOL4.llist.LAPPEND @ ((cHOL4.llist.LMAP @ X0) @ X1)) @ ((cHOL4.llist.LMAP @ X0) @ X2)))))))))) (Tllist.LAPPEND_EQ_LNIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ X1) @ X0)) @ cHOL4.llist.LNIL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)))))))) (Tllist.LAPPEND_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ ((cHOL4.llist.LAPPEND @ X0) @ X1)) @ X2)) @ ((cHOL4.llist.LAPPEND @ X0) @ ((cHOL4.llist.LAPPEND @ X1) @ X2)))))))))) (Tllist.LMAP_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LMAP @ X0) @ ((cHOL4.llist.LMAP @ X1) @ X2))) @ ((cHOL4.llist.LMAP @ ((cHOL4.combin.o @ X0) @ X1)) @ X2))))))))) (Tllist.LAPPEND_NIL_2ND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ X0) @ cHOL4.llist.LNIL)) @ X0)))) (Tllist.LFINITE_rules,((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ cHOL4.llist.LNIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X1)) @ (cHOL4.llist.LFINITE @ ((cHOL4.llist.LCONS @ X0) @ X1))))))))) (Tllist.LFINITE_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.llist.LNIL)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X0 @ ((cHOL4.llist.LCONS @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X3)) @ (X0 @ X3)))))))) (Tllist.LFINITE_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.llist.LNIL)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X2)) @ (X0 @ X2))) @ (X0 @ ((cHOL4.llist.LCONS @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X3)) @ (X0 @ X3)))))))) (Tllist.LFINITE_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2))) @ (cHOL4.llist.LFINITE @ X2))))))))))) (Tllist.LFINITE_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ cHOL4.llist.LNIL)) @ cHOL4.bool.T)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ (cHOL4.llist.LFINITE @ X1)))))))) (Tllist.LFINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X1) @ X0)) @ cHOL4.option.NONE))))))) (Tllist.llength_rel_rules,((cHOL4.bool./\ @ ((cHOL4.llist.llength_rel @ cHOL4.llist.LNIL) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.llist.llength_rel @ X2) @ X1)) @ ((cHOL4.llist.llength_rel @ ((cHOL4.llist.LCONS @ X0) @ X2)) @ (cHOL4.num.SUC @ X1))))))))))) (Tllist.llength_rel_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.llist.LNIL) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X3) @ X2)) @ ((X0 @ ((cHOL4.llist.LCONS @ X1) @ X3)) @ (cHOL4.num.SUC @ X2))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.llist.llength_rel @ X4) @ X5)) @ ((X0 @ X4) @ X5)))))))))) (Tllist.llength_rel_strongind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.llist.LNIL) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.llist.llength_rel @ X3) @ X2)) @ ((X0 @ X3) @ X2))) @ ((X0 @ ((cHOL4.llist.LCONS @ X1) @ X3)) @ (cHOL4.num.SUC @ X2))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.llist.llength_rel @ X4) @ X5)) @ ((X0 @ X4) @ X5)))))))))) (Tllist.llength_rel_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.llength_rel @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.llist.LCONS @ X2) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.llist.llength_rel @ X4) @ X3)))))))))))))))) (Tllist.LLENGTH_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ cHOL4.llist.LNIL)) @ (cHOL4.option.SOME @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ ((cHOL4.option.OPTION_MAP @ cHOL4.num.SUC) @ (cHOL4.llist.LLENGTH @ X1))))))))) (Tllist.LFINITE_HAS_LENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ X0)) @ (cHOL4.option.SOME @ X1)))))))) (Tllist.NOT_LFINITE_NO_LENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.llist.LFINITE @ X0))) @ ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ X0)) @ cHOL4.option.NONE))))) (Tllist.LFINITE_INDUCTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.llist.LNIL)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X0 @ ((cHOL4.llist.LCONS @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X3)) @ (X0 @ X3)))))))) (Tllist.LFINITE_STRONG_INDUCTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.llist.LNIL)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X2)) @ (X0 @ X2))) @ (X0 @ ((cHOL4.llist.LCONS @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X3)) @ (X0 @ X3)))))))) (Tllist.LFINITE_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ ((cHOL4.llist.LMAP @ X0) @ X1))) @ (cHOL4.llist.LFINITE @ X1))))))) (Tllist.LFINITE_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ ((cHOL4.llist.LAPPEND @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X0)) @ (cHOL4.llist.LFINITE @ X1)))))))) (Tllist.NOT_LFINITE_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.llist.LFINITE @ X0))) @ ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ X0) @ X1)) @ X0))))))) (Tllist.LLENGTH_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ ((cHOL4.llist.LMAP @ X1) @ X0))) @ (cHOL4.llist.LLENGTH @ X0))))))) (Tllist.LLENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ ((cHOL4.llist.LAPPEND @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X0)) @ (cHOL4.llist.LFINITE @ X1))) @ (cHOL4.option.SOME @ ((cHOL4.arithmetic.+ @ (cHOL4.option.THE @ (cHOL4.llist.LLENGTH @ X0))) @ (cHOL4.option.THE @ (cHOL4.llist.LLENGTH @ X1))))) @ cHOL4.option.NONE))))))) (Tllist.toList_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.toList @ cHOL4.llist.LNIL)) @ (cHOL4.option.SOME @ cHOL4.list.NIL))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.toList @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ ((cHOL4.option.OPTION_MAP @ (cHOL4.list.CONS @ X0)) @ (cHOL4.llist.toList @ X1))))))))) (Tllist.LFINITE_fromList,(cHOL4.bool.! @ (^[X0]: (cHOL4.llist.LFINITE @ (cHOL4.llist.fromList @ X0))))) (Tllist.LLENGTH_fromList,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LLENGTH @ (cHOL4.llist.fromList @ X0))) @ (cHOL4.option.SOME @ (cHOL4.list.LENGTH @ X0)))))) (Tllist.LTAKE_fromList,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.llist.fromList @ X0))) @ (cHOL4.option.SOME @ X0))))) (Tllist.from_toList,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.toList @ (cHOL4.llist.fromList @ X0))) @ (cHOL4.option.SOME @ X0))))) (Tllist.LFINITE_toList,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.toList @ X0)) @ (cHOL4.option.SOME @ X1)))))))) (Tllist.to_fromList,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.llist.fromList @ (cHOL4.option.THE @ (cHOL4.llist.toList @ X0)))) @ X0))))) (Tllist.LDROP_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ cHOL4.num.0) @ X0)) @ (cHOL4.option.SOME @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ (cHOL4.num.SUC @ X1)) @ cHOL4.llist.LNIL)) @ cHOL4.option.NONE)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ ((cHOL4.llist.LDROP @ X1) @ X3))))))))))) (Tllist.LDROP1_THM,((cHOL4.min.= @ (cHOL4.llist.LDROP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.llist.LTL)) (Tllist.NOT_LFINITE_TAKE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.llist.LFINITE @ X0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X1) @ X0)) @ (cHOL4.option.SOME @ X2)))))))))) (Tllist.LFINITE_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.option.THE @ (cHOL4.llist.LLENGTH @ X1))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ X1)) @ (cHOL4.option.SOME @ X2)))))))))) (Tllist.NOT_LFINITE_DROP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.llist.LFINITE @ X0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ X1) @ X0)) @ (cHOL4.option.SOME @ X2)))))))))) (Tllist.LFINITE_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.option.THE @ (cHOL4.llist.LLENGTH @ X1))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ X0) @ X1)) @ (cHOL4.option.SOME @ X2)))))))))) (Tllist.LTAKE_DROP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.llist.LFINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ (cHOL4.llist.fromList @ (cHOL4.option.THE @ ((cHOL4.llist.LTAKE @ X0) @ X1)))) @ (cHOL4.option.THE @ ((cHOL4.llist.LDROP @ X0) @ X1)))) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.llist.LFINITE @ X1)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.option.THE @ (cHOL4.llist.LLENGTH @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ (cHOL4.llist.fromList @ (cHOL4.option.THE @ ((cHOL4.llist.LTAKE @ X0) @ X1)))) @ (cHOL4.option.THE @ ((cHOL4.llist.LDROP @ X0) @ X1)))) @ X1)))))))) (Tllist.exists_rules,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.llist.exists @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.llist.exists @ X0) @ X2)) @ ((cHOL4.llist.exists @ X0) @ ((cHOL4.llist.LCONS @ X1) @ X2))))))))))) (Tllist.exists_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.llist.exists @ X0) @ X4)) @ (X1 @ X4)))))))))) (Tllist.exists_strongind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.llist.exists @ X0) @ X3)) @ (X1 @ X3))) @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.llist.exists @ X0) @ X4)) @ (X1 @ X4)))))))))) (Tllist.exists_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.exists @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ (X0 @ X2))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ ((cHOL4.llist.exists @ X0) @ X3))))))))))))) (Tllist.exists_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.exists @ X2) @ cHOL4.llist.LNIL)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.llist.exists @ X2) @ ((cHOL4.llist.LCONS @ X1) @ X0))) @ ((cHOL4.bool.\/ @ (X2 @ X1)) @ ((cHOL4.llist.exists @ X2) @ X0))))))))))) (Tllist.exists_LNTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.exists @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.option.SOME @ X3)) @ ((cHOL4.llist.LNTH @ X2) @ X1))) @ (X0 @ X3)))))))))))) (Tllist.MONO_exists,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.llist.exists @ X2) @ X0)) @ ((cHOL4.llist.exists @ X1) @ X0)))))))))) (Tllist.exists_strong_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.llist.exists @ X0) @ X3))) @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.llist.exists @ X0) @ X4)) @ (X1 @ X4)))))))))) (Tllist.exists_LDROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.exists @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.LDROP @ X2) @ X0)) @ (cHOL4.option.SOME @ ((cHOL4.llist.LCONS @ X3) @ X4)))) @ (X1 @ X3)))))))))))))) (Tllist.every_coind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ (X1 @ X3)))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X1 @ X4)) @ ((cHOL4.llist.every @ X0) @ X4)))))))))) (Tllist.every_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.every @ X2) @ cHOL4.llist.LNIL)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.llist.every @ X2) @ ((cHOL4.llist.LCONS @ X1) @ X0))) @ ((cHOL4.bool./\ @ (X2 @ X1)) @ ((cHOL4.llist.every @ X2) @ X0))))))))))) (Tllist.LL_ALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.every @ X2) @ cHOL4.llist.LNIL)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.llist.every @ X2) @ ((cHOL4.llist.LCONS @ X1) @ X0))) @ ((cHOL4.bool./\ @ (X2 @ X1)) @ ((cHOL4.llist.every @ X2) @ X0))))))))))) (Tllist.MONO_every,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.llist.every @ X2) @ X0)) @ ((cHOL4.llist.every @ X1) @ X0)))))))))) (Tllist.every_strong_coind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ (X0 @ X2))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.llist.every @ X0) @ X3))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X1 @ X4)) @ ((cHOL4.llist.every @ X0) @ X4)))))))))) (Tllist.LFILTER_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.llist.LFILTER @ X0) @ cHOL4.llist.LNIL)) @ cHOL4.llist.LNIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.llist.LFILTER @ X1) @ ((cHOL4.llist.LCONS @ X2) @ X3))) @ (((cHOL4.bool.COND @ (X1 @ X2)) @ ((cHOL4.llist.LCONS @ X2) @ ((cHOL4.llist.LFILTER @ X1) @ X3))) @ ((cHOL4.llist.LFILTER @ X1) @ X3))))))))))) (Tllist.LFILTER_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.llist.every @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.llist.LFILTER @ X0) @ X1)) @ cHOL4.llist.LNIL))))))) (Tllist.LFILTER_EQ_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LFILTER @ X0) @ X1)) @ cHOL4.llist.LNIL)) @ ((cHOL4.llist.every @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1))))))) (Tllist.LFILTER_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.llist.LFINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.llist.LFILTER @ X0) @ ((cHOL4.llist.LAPPEND @ X1) @ X2))) @ ((cHOL4.llist.LAPPEND @ ((cHOL4.llist.LFILTER @ X0) @ X1)) @ ((cHOL4.llist.LFILTER @ X0) @ X2))))))))))) (Tllist.LFLATTEN_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ cHOL4.llist.LNIL)) @ cHOL4.llist.LNIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ ((cHOL4.llist.LCONS @ cHOL4.llist.LNIL) @ X0))) @ (cHOL4.llist.LFLATTEN @ X0))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ ((cHOL4.llist.LCONS @ ((cHOL4.llist.LCONS @ X2) @ X3)) @ X4))) @ ((cHOL4.llist.LCONS @ X2) @ (cHOL4.llist.LFLATTEN @ ((cHOL4.llist.LCONS @ X3) @ X4))))))))))))))) (Tllist.LFLATTEN_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ ((cHOL4.llist.LCONS @ X0) @ X1))) @ ((cHOL4.llist.LAPPEND @ X0) @ (cHOL4.llist.LFLATTEN @ X1)))))))) (Tllist.LFLATTEN_EQ_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ X0)) @ cHOL4.llist.LNIL)) @ ((cHOL4.llist.every @ (cHOL4.min.= @ cHOL4.llist.LNIL)) @ X0))))) (Tllist.LFLATTEN_SINGLETON,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LFLATTEN @ ((cHOL4.llist.LCONS @ X0) @ cHOL4.llist.LNIL))) @ X0)))) (Tllist.LZIP_LUNZIP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LZIP @ (cHOL4.llist.LUNZIP @ X0))) @ X0)))) (Tllist.LUNFOLD_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.llist.LUNFOLD @ X0) @ X1)) @ cHOL4.llist.LNIL))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X1)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.llist.LUNFOLD @ X0) @ X1)) @ ((cHOL4.llist.LCONS @ X3) @ ((cHOL4.llist.LUNFOLD @ X0) @ X2)))))))))))))) (Tllist.LLIST_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.llist.LNIL)) @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.llist.LNIL))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X2)) @ ((cHOL4.llist.LCONS @ X3) @ (X0 @ X4)))) @ ((cHOL4.min.= @ (X1 @ X2)) @ ((cHOL4.llist.LCONS @ X3) @ (X1 @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ (X1 @ X2)))))))))) (Tllist.LUNFOLD_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X3) @ cHOL4.llist.LNIL))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X4) @ X5)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ X3)) @ (cHOL4.option.SOME @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.llist.LTL @ X3)) @ (cHOL4.option.SOME @ X6))) @ ((X0 @ X4) @ X6)))))))))))))))))) @ ((cHOL4.min.= @ ((cHOL4.llist.LUNFOLD @ X1) @ X2)) @ X3))))))))))) (Tllist.LMAP_LUNFOLD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.llist.LMAP @ X0) @ ((cHOL4.llist.LUNFOLD @ X1) @ X2))) @ ((cHOL4.llist.LUNFOLD @ (^[X2]: ((cHOL4.option.OPTION_MAP @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ X3) @ (X0 @ X4)))))) @ (X1 @ X2)))) @ X2))))))))) (Tllist.LNTH_LDROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.min.= @ (cHOL4.llist.LHD @ (cHOL4.option.THE @ ((cHOL4.llist.LDROP @ X0) @ X1)))) @ (cHOL4.option.SOME @ X2)))))))))) (Tllist.LAPPEND_fromList,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.llist.LAPPEND @ (cHOL4.llist.fromList @ X0)) @ (cHOL4.llist.fromList @ X1))) @ (cHOL4.llist.fromList @ ((cHOL4.list.APPEND @ X0) @ X1)))))))) (Tllist.LTAKE_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.min.= @ X0) @ (cHOL4.list.LENGTH @ X2)))))))))) (Tllist.linear_order_to_llist,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X0) @ X1)) @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X4) @ X2)) @ (cHOL4.option.SOME @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X5]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X5)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X4) @ X2)) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X6) @ X2)) @ (cHOL4.option.SOME @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X4) @ X2)) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X6) @ X2)) @ (cHOL4.option.SOME @ X3)))) @ ((cHOL4.min.= @ X4) @ X6)))))))))))))))))) (Tlogroot.ROOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ ((cHOL4.logroot.ROOT @ X0) @ X1)) @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ ((cHOL4.logroot.ROOT @ X0) @ X1))) @ X0))))))))) (Tlogroot.LOG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X0) @ ((cHOL4.logroot.LOG @ X0) @ X1))) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X0) @ X1))))))))))) (Tlogroot.SQRTd_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.logroot.ROOT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.* @ ((cHOL4.logroot.ROOT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.logroot.ROOT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))) (Tlogroot.iSQRT0_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.logroot.iSQRT0 @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.FST @ X1))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.pair.SND @ X1)))) @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.FST @ X1)))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.arithmetic.- @ (cHOL4.pair.SND @ X1)) @ (cHOL4.pair.FST @ X1))))) @ (cHOL4.logroot.SQRTd @ X0)))))) (Tlogroot.iSQRT1_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.logroot.iSQRT1 @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.FST @ X1))) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.pair.SND @ X1))))) @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.FST @ X1)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ (cHOL4.pair.SND @ X1))) @ (cHOL4.pair.FST @ X1))))) @ (cHOL4.logroot.SQRTd @ X0)))))) (Tlogroot.iSQRT2_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.logroot.iSQRT2 @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X3))) @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X2)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X4)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.arithmetic.- @ X3) @ X2)))) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.SND @ X1)))))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.FST @ X1))))) @ (cHOL4.logroot.SQRTd @ X0)))))) (Tlogroot.iSQRT3_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.logroot.iSQRT3 @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X3)))) @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X2)) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ X4) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X3)) @ X2)))) @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.SND @ X1)))))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pair.FST @ X1))))) @ (cHOL4.logroot.SQRTd @ X0)))))) (Tlogroot.LT_EXP_ISO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ X0) @ X2))))))))))) (Tlogroot.LE_EXP_ISO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ X0) @ X2))))))))))) (Tlogroot.EXP_LT_ISO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.EXP @ X0) @ X2)) @ ((cHOL4.arithmetic.EXP @ X1) @ X2))))))))))) (Tlogroot.EXP_LE_ISO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X0) @ X2)) @ ((cHOL4.arithmetic.EXP @ X1) @ X2))))))))))) (Tlogroot.ROOT_exists,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X2) @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X2)) @ X0))))))))))) (Tlogroot.ROOT_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X2) @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X2)) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.logroot.ROOT @ X0) @ X1)) @ X2))))))))) (Tlogroot.LOG_exists,(cHOL4.bool.? @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X1) @ ((X0 @ X1) @ X2))) @ X2)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.num.SUC @ ((X0 @ X1) @ X2))))))))))))) (Tlogroot.LOG_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.EXP @ X0) @ X2)) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.num.SUC @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ X1)) @ X2))))))))) (Tlogroot.LOG_ADD1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X1) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.num.SUC @ X0))) @ X2))) @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X1) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ X1) @ X0)) @ X2)))))))))))) (Tlogroot.LOG_BASE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tlogroot.LOG_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X1) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ X1) @ X0)) @ X2))) @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.logroot.LOG @ X1) @ X2))))))))))) (Tlogroot.LOG_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0))))) (Tlogroot.LOG_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.logroot.LOG @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ X0)))))))))) (Tlogroot.LOG_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ X0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.EXP @ X0) @ X2)))) @ X2))))))))) (Tlogroot.LOG_LE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.logroot.LOG @ X0) @ X1)) @ ((cHOL4.logroot.LOG @ X0) @ X2))))))))))) (Tlogroot.LOG_RWT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ cHOL4.num.0) @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ X0))))))))))) (Tlogroot.ROOT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ ((cHOL4.logroot.ROOT @ X0) @ X1)) @ X2)) @ ((cHOL4.logroot.ROOT @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ ((cHOL4.arithmetic.EXP @ X2) @ X0)))))))))))) (Tlogroot.ROOT_LE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.logroot.ROOT @ X0) @ X1)) @ ((cHOL4.logroot.ROOT @ X0) @ X2))))))))))) (Tlogroot.EXP_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ X2)) @ ((cHOL4.arithmetic.EXP @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Tlogroot.LOG_ROOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X0) @ ((cHOL4.logroot.ROOT @ X2) @ X1))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.logroot.LOG @ X0) @ X1)) @ X2)))))))))) (Tlogroot.LOG_MOD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.logroot.LOG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ ((cHOL4.arithmetic.MOD @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.logroot.LOG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))) (Tlogroot.ROOT_COMPUTE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.logroot.ROOT @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.logroot.ROOT @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.num.SUC @ X2)) @ X0))) @ X2) @ (cHOL4.num.SUC @ X2)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.logroot.ROOT @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))))))) (Tlogroot.numeral_sqrt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.logroot.iSQRT3 @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.logroot.iSQRT0 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.logroot.iSQRT1 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.logroot.iSQRT2 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.logroot.iSQRT0 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.logroot.iSQRT1 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.logroot.iSQRT2 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.min.= @ (cHOL4.logroot.SQRTd @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.logroot.iSQRT3 @ (cHOL4.num.SUC @ X0)))))))))))))))) (Tlogroot.numeral_root2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.logroot.ROOT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.pair.FST @ (cHOL4.logroot.SQRTd @ X0)))))) (Tmarker.stmarker_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.marker.stmarker @ X0)) @ X0)))) (Tmarker.unint_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.marker.unint @ X0)) @ X0)))) (Tmarker.Abbrev_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.marker.Abbrev @ X0)) @ X0)))) (Tmarker.IfCases_def,((cHOL4.min.= @ cHOL4.bool.T) @ cHOL4.bool.T)) (Tmarker.AC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.marker.AC @ X0) @ X1)) @ ((cHOL4.bool./\ @ X0) @ X1))))))) (Tmarker.Cong_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.marker.Cong @ X0)) @ X0)))) (Tmarker.label_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.marker.|colon|- @ X0) @ X1)) @ X1)))))) (Tmarker.move_left_conj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ (cHOL4.marker.stmarker @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.marker.stmarker @ X2)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.marker.stmarker @ X2)) @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.marker.stmarker @ X2)) @ ((cHOL4.bool./\ @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ ((cHOL4.bool./\ @ (cHOL4.marker.stmarker @ X2)) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.marker.stmarker @ X2)) @ ((cHOL4.bool./\ @ X0) @ X1)))))))))))) (Tmarker.move_right_conj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.marker.stmarker @ X2)) @ X0)) @ ((cHOL4.bool./\ @ X0) @ (cHOL4.marker.stmarker @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ ((cHOL4.bool./\ @ X1) @ (cHOL4.marker.stmarker @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ X0) @ X1)) @ (cHOL4.marker.stmarker @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ X0) @ (cHOL4.marker.stmarker @ X2))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ X0) @ X1)) @ (cHOL4.marker.stmarker @ X2)))))))))))) (Tmarker.move_left_disj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.marker.stmarker @ X2))) @ ((cHOL4.bool.\/ @ (cHOL4.marker.stmarker @ X2)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.bool.\/ @ (cHOL4.marker.stmarker @ X2)) @ X0)) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.marker.stmarker @ X2)) @ ((cHOL4.bool.\/ @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ ((cHOL4.bool.\/ @ (cHOL4.marker.stmarker @ X2)) @ X1))) @ ((cHOL4.bool.\/ @ (cHOL4.marker.stmarker @ X2)) @ ((cHOL4.bool.\/ @ X0) @ X1)))))))))))) (Tmarker.move_right_disj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.marker.stmarker @ X2)) @ X0)) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.marker.stmarker @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ X0) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.marker.stmarker @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.\/ @ X0) @ X1)) @ (cHOL4.marker.stmarker @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.marker.stmarker @ X2))) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.\/ @ X0) @ X1)) @ (cHOL4.marker.stmarker @ X2)))))))))))) (Tmeasure.space_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.measure.space @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X0)))))) (Tmeasure.subsets_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.measure.subsets @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X1)))))) (Tmeasure.subset_class_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.subset_class @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X0)))))))))) (Tmeasure.algebra_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))))))) (Tmeasure.sigma_algebra_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X1)) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.sigma_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.sigma @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.pred_set.BIGINTER @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))))))) (Tmeasure.m_space_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.measure.m_space @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X0)))))))) (Tmeasure.measurable_sets_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X1)))))))) (Tmeasure.measure_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.measure.measure @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X2)))))))) (Tmeasure.positive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tmeasure.additive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.additive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2)))))))))))) (Tmeasure.countably_additive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.countably_additive @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X2)) @ (X1 @ X3)))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.measurable_sets @ X0))))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1)) @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))))))))))) (Tmeasure.subadditive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.subadditive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2)))))))))))) (Tmeasure.countably_subadditive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.countably_subadditive @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.measurable_sets @ X0))) @ (cHOL4.seq.summable @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1))))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))) @ (cHOL4.seq.suminf @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1)))))))))) (Tmeasure.increasing_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.increasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2))))))))))) (Tmeasure.measure_space_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.countably_additive @ X0))))))) (Tmeasure.lambda_system_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.lambda_system @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (X1 @ ((cHOL4.pred_set.INTER @ X2) @ X3))) @ (X1 @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X2)) @ X3)))) @ (X1 @ X3))))))))))))))) (Tmeasure.outer_measure_space_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.outer_measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.increasing @ X0)) @ (cHOL4.measure.countably_subadditive @ X0))))))) (Tmeasure.inf_measure_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.inf_measure @ X0) @ X1)) @ (cHOL4.real.inf @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5))) @ ((cHOL4.pred_set.DISJOINT @ (X3 @ X4)) @ (X3 @ X5)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X3) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X3)) @ X2)))))))))))))))) (Tmeasure.closed_cdi_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.closed_cdi @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.pred_set.SUBSET @ (X2 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3)))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X4)) @ (X2 @ X3))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))))))) (Tmeasure.smallest_closed_cdi_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.smallest_closed_cdi @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ (cHOL4.pred_set.BIGINTER @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ X0)) @ X1)) @ (cHOL4.measure.closed_cdi @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ X1)))))))))))) (Tmeasure.measurable_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.measurable @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.space @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.space @ X0))) @ (cHOL4.measure.subsets @ X0))))))))))))))))) (Tmeasure.measure_preserving_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.measure_preserving @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.m_space @ X0)))) @ ((cHOL4.measure.measure @ X1) @ X3))))))))))))))))) (Tmeasure.indicator_fn_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.indicator_fn @ X0)) @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.extreal.extreal_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) (Tmeasure.pos_simple_fn_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X1 @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.min.= @ (X1 @ X5)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X6]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ (X4 @ X6))) @ ((cHOL4.measure.indicator_fn @ (X3 @ X6)) @ X5)))) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ X2)) @ ((cHOL4.bool.IN @ (X3 @ X6)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X6) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X7) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X6) @ X7))))) @ ((cHOL4.pred_set.DISJOINT @ (X3 @ X6)) @ (X3 @ X7)))))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X3) @ X2))) @ (cHOL4.measure.m_space @ X0)))))))))))))))))))) (Tmeasure.null_set_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.measure.null_set @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Tmeasure.Borel_def,((cHOL4.min.= @ cHOL4.measure.Borel) @ ((cHOL4.measure.sigma @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.IMAGE @ (^[X0]: (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_lt @ X1) @ X0)))))) @ cHOL4.pred_set.UNIV)))) (Tmeasure.fn_plus_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.fn_plus @ X0)) @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.extreal.extreal_lt @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X1))) @ (X0 @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) (Tmeasure.fn_minus_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.fn_minus @ X0)) @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.extreal.extreal_lt @ (X0 @ X1)) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))) @ (cHOL4.extreal.extreal_ainv @ (X0 @ X1))) @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) (Tmeasure.fn_abs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.fn_abs @ X0)) @ (^[X1]: (cHOL4.extreal.extreal_abs @ (X0 @ X1))))))) (Tmeasure.SIGMA_PROPERTY_DISJOINT_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ (cHOL4.measure.closed_cdi @ ((cHOL4.pair.|comma| @ X0) @ X2))))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X1))) @ X2))))))))) (Tmeasure.SIGMA_PROPERTY_DISJOINT_LEMMA2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X1) @ X2)) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0)))))))))))) (Tmeasure.SIGMA_PROPERTY_DISJOINT_LEMMA1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X1) @ X2)) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0)))))))))))) (Tmeasure.CLOSED_CDI_INCREASING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.closed_cdi @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.SUBSET @ (X1 @ X2)) @ (X1 @ (cHOL4.num.SUC @ X2))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.CLOSED_CDI_DISJOINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.closed_cdi @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X2)) @ (X1 @ X3)))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.CLOSED_CDI_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.closed_cdi @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.CLOSED_CDI_DUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.measure.closed_cdi @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.SMALLEST_CLOSED_CDI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ X0)) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.closed_cdi @ (cHOL4.measure.smallest_closed_cdi @ X0))) @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ (cHOL4.measure.smallest_closed_cdi @ X0))))))))) (Tmeasure.SPACE_SMALLEST_CLOSED_CDI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.space @ (cHOL4.measure.smallest_closed_cdi @ X0))) @ (cHOL4.measure.space @ X0))))) (Tmeasure.SPACE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ X0)))) (Tmeasure.ALGEBRA_ALT_INTER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))))))) (Tmeasure.ALGEBRA_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0)))))) (Tmeasure.ALGEBRA_SPACE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0)))))) (Tmeasure.ALGEBRA_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.ALGEBRA_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.ALGEBRA_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.ALGEBRA_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.ALGEBRA_FINITE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X1)) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.ALGEBRA_INTER_SPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ (cHOL4.measure.space @ X0)) @ X1)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.space @ X0))) @ X1)))))))) (Tmeasure.LAMBDA_SYSTEM_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))) @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))))))) (Tmeasure.LAMBDA_SYSTEM_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.lambda_system @ X0) @ X1))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X2)) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))))))))) (Tmeasure.LAMBDA_SYSTEM_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.lambda_system @ X0) @ X1))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X2) @ X3)) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))))))))))) (Tmeasure.LAMBDA_SYSTEM_ALGEBRA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))) @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.measure.lambda_system @ X0) @ X1))))))))) (Tmeasure.LAMBDA_SYSTEM_STRONG_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.lambda_system @ X0) @ X1))) @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))))))) @ ((cHOL4.min.= @ (X1 @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.UNION @ X3) @ X4)) @ X2))) @ ((cHOL4.realax.real_add @ (X1 @ ((cHOL4.pred_set.INTER @ X3) @ X2))) @ (X1 @ ((cHOL4.pred_set.INTER @ X4) @ X2)))))))))))))))) (Tmeasure.LAMBDA_SYSTEM_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))) @ (cHOL4.measure.additive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.measure.lambda_system @ X0) @ X1)) @ X1))))))))))))) (Tmeasure.COUNTABLY_SUBADDITIVE_SUBADDITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.countably_subadditive @ X0)))) @ (cHOL4.measure.subadditive @ X0))))) (Tmeasure.SIGMA_ALGEBRA_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.SIGMA_ALGEBRA_ALT_MONO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.SUBSET @ (X1 @ X2)) @ (X1 @ (cHOL4.num.SUC @ X2)))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.SIGMA_ALGEBRA_ALT_DISJOINT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X2)) @ (X1 @ X3))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))))) (Tmeasure.SUBADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.subadditive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ X3) @ ((cHOL4.pred_set.UNION @ X1) @ X2)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ X3)) @ ((cHOL4.realax.real_add @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2))))))))))))) (Tmeasure.ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.additive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)) @ ((cHOL4.min.= @ X3) @ ((cHOL4.pred_set.UNION @ X1) @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ X3)) @ ((cHOL4.realax.real_add @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2))))))))))))) (Tmeasure.COUNTABLY_SUBADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.countably_subadditive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))))))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ X2)) @ (cHOL4.seq.suminf @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1))))))))))) (Tmeasure.ADDITIVE_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.additive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X2))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X3)) @ (X1 @ X2)))))))))))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X2)) @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1))) @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.pred_set.count @ X2))))))))))))) (Tmeasure.INCREASING_ADDITIVE_SUMMABLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.increasing @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.additive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X2)) @ (X1 @ X3))))))))))))) @ (cHOL4.seq.summable @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1)))))))) (Tmeasure.LAMBDA_SYSTEM_POSITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.measure.lambda_system @ X0) @ X1)) @ X1))))))))) (Tmeasure.LAMBDA_SYSTEM_INCREASING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.increasing @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ (cHOL4.measure.increasing @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.measure.lambda_system @ X0) @ X1)) @ X1))))))))) (Tmeasure.LAMBDA_SYSTEM_STRONG_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X3 @ X5)) @ (X3 @ X4)))))))))))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X4)) @ ((cHOL4.combin.o @ X1) @ ((cHOL4.combin.o @ (^[X6]: ((cHOL4.pred_set.INTER @ X6) @ X2))) @ X3)))) @ (X1 @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X3) @ (cHOL4.pred_set.count @ X4)))) @ X2))))))))))))))) (Tmeasure.SIGMA_ALGEBRA_ALGEBRA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.sigma_algebra @ X0)) @ (cHOL4.measure.algebra @ X0))))) (Tmeasure.OUTER_MEASURE_SPACE_POSITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.outer_measure_space @ X0)) @ (cHOL4.measure.positive @ X0))))) (Tmeasure.LAMBDA_SYSTEM_CARATHEODORY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ (cHOL4.measure.outer_measure_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ ((cHOL4.measure.lambda_system @ X0) @ X1)))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X3)) @ (X2 @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.measure.lambda_system @ X0) @ X1))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ X1) @ X2)) @ (X1 @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV)))))))))))))) (Tmeasure.CARATHEODORY_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ (cHOL4.measure.outer_measure_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.measure.lambda_system @ X0) @ X1)) @ X1))))))))) (Tmeasure.INF_MEASURE_NONEMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2))))) @ ((cHOL4.bool.IN @ ((cHOL4.measure.measure @ X0) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ X6))) @ ((cHOL4.pred_set.DISJOINT @ (X4 @ X5)) @ (X4 @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X4)) @ X3)))))))))))))))))) (Tmeasure.INF_MEASURE_POS0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ X6))) @ ((cHOL4.pred_set.DISJOINT @ (X4 @ X5)) @ (X4 @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X4)) @ X3))))))))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))))))))) (Tmeasure.INF_MEASURE_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.m_space @ X0))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.measure.inf_measure @ X0) @ X1)))))))) (Tmeasure.INCREASING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.increasing @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2)))))))))) (Tmeasure.ADDITIVE_INCREASING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.additive @ X0)))) @ (cHOL4.measure.increasing @ X0))))) (Tmeasure.COUNTABLY_ADDITIVE_ADDITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.countably_additive @ X0)))) @ (cHOL4.measure.additive @ X0))))) (Tmeasure.COUNTABLY_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.countably_additive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X3)) @ (X2 @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))))))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X2)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tmeasure.INF_MEASURE_AGREES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.countably_additive @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.min.= @ ((cHOL4.measure.inf_measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))) (Tmeasure.MEASURE_DOWN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.measure @ X0)) @ (cHOL4.measure.measure @ X1))) @ (cHOL4.measure.measure_space @ X1))))) @ (cHOL4.measure.measure_space @ X0))))))) (Tmeasure.SIGMA_ALGEBRA_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.measure.subset_class @ X0) @ X1)) @ (cHOL4.measure.sigma_algebra @ ((cHOL4.measure.sigma @ X0) @ X1)))))))) (Tmeasure.POW_ALGEBRA,(cHOL4.bool.! @ (^[X0]: (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.pred_set.POW @ X0)))))) (Tmeasure.POW_SIGMA_ALGEBRA,(cHOL4.bool.! @ (^[X0]: (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.pred_set.POW @ X0)))))) (Tmeasure.UNIV_SIGMA_ALGEBRA,(cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))) (Tmeasure.INF_MEASURE_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.measure.positive @ X0))) @ ((cHOL4.min.= @ ((cHOL4.measure.inf_measure @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tmeasure.INF_MEASURE_POSITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.measure.positive @ X0))) @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.inf_measure @ X0)))))))) (Tmeasure.INF_MEASURE_INCREASING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.measure.positive @ X0))) @ (cHOL4.measure.increasing @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.inf_measure @ X0)))))))) (Tmeasure.INF_MEASURE_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.increasing @ X0)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X4)) @ X3))))))))))))) @ ((cHOL4.real.real_lte @ ((cHOL4.measure.inf_measure @ X0) @ X1)) @ X2))))))))) (Tmeasure.INF_MEASURE_CLOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.m_space @ X0)))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X3) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ X6))) @ ((cHOL4.pred_set.DISJOINT @ (X3 @ X5)) @ (X3 @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X3)) @ X4)) @ ((cHOL4.real.real_lte @ X4) @ ((cHOL4.realax.real_add @ ((cHOL4.measure.inf_measure @ X0) @ X1)) @ X2)))))))))))))))))) (Tmeasure.INF_MEASURE_COUNTABLY_SUBADDITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.increasing @ X0)))) @ (cHOL4.measure.countably_subadditive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.inf_measure @ X0)))))))) (Tmeasure.INF_MEASURE_OUTER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.increasing @ X0)))) @ (cHOL4.measure.outer_measure_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.measure.inf_measure @ X0)))))))) (Tmeasure.SIGMA_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.measure.subsets @ X1)))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ (cHOL4.measure.space @ X1)) @ X0))) @ (cHOL4.measure.subsets @ X1)))))))) (Tmeasure.ALGEBRA_SUBSET_LAMBDA_SYSTEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.increasing @ X0)) @ (cHOL4.measure.additive @ X0))))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.measurable_sets @ X0)) @ ((cHOL4.measure.lambda_system @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0)))) @ (cHOL4.measure.inf_measure @ X0))))))) (Tmeasure.CARATHEODORY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.countably_additive @ X0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X1) @ X2)) @ ((cHOL4.measure.measure @ X0) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.measure.sigma @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.measure.measure_space @ X1))))))))) (Tmeasure.SIGMA_SUBSET_SUBSETS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X1)))))))) (Tmeasure.IN_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X1))))))))))) (Tmeasure.SIGMA_ALGEBRA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X2)) @ ((cHOL4.pred_set.SUBSET @ X2) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X2)) @ (cHOL4.measure.subsets @ X0)))))))))))) (Tmeasure.SIGMA_ALGEBRA_COUNTABLE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X1)) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.SIGMA_ALGEBRA_ENUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.MEASURE_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.m_space @ X0)) @ X1))) @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X0) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.measure.measure @ X0) @ X1))))))))) (Tmeasure.SIGMA_PROPERTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X2) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X0) @ X3)) @ X1))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X4)) @ ((cHOL4.pred_set.SUBSET @ X4) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2)))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X4)) @ X1))))))))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))) @ X1))))))))) (Tmeasure.MEASURE_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tmeasure.SIGMA_SUBSET_MEASURABLE_SETS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.measure.measurable_sets @ X1)))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ (cHOL4.measure.m_space @ X1)) @ X0))) @ (cHOL4.measure.measurable_sets @ X1)))))))) (Tmeasure.SIGMA_ALGEBRA_FN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))))))) (Tmeasure.SIGMA_ALGEBRA_FN_DISJOINT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ (cHOL4.measure.subsets @ X0)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5))) @ ((cHOL4.pred_set.DISJOINT @ (X3 @ X4)) @ (X3 @ X5))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X3) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0))))))))))))) (Tmeasure.SIGMA_PROPERTY_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X2) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X0) @ X3)) @ X1))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2)))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV))) @ X1))))))))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))) @ X1))))))))) (Tmeasure.SIGMA_PROPERTY_DISJOINT_WEAK,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X0) @ X3)) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.pred_set.SUBSET @ (X4 @ X5)) @ (X4 @ (cHOL4.num.SUC @ X5)))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV))) @ X1))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ X1))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X6) @ X5))) @ ((cHOL4.pred_set.DISJOINT @ (X4 @ X6)) @ (X4 @ X5))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV))) @ X1)))))))))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))) @ X1))))))))) (Tmeasure.SIGMA_PROPERTY_DISJOINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X2) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X0) @ X3)) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.pred_set.SUBSET @ (X4 @ X5)) @ (X4 @ (cHOL4.num.SUC @ X5)))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV))) @ X1))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INTER @ X1) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2)))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X6) @ X5))) @ ((cHOL4.pred_set.DISJOINT @ (X4 @ X6)) @ (X4 @ X5))))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X4) @ cHOL4.pred_set.UNIV))) @ X1))))))))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X2))) @ X1))))))))) (Tmeasure.MEASURE_COUNTABLY_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X3)) @ (X2 @ X4)))))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))))))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X2)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tmeasure.MEASURE_SPACE_ADDITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.measure.additive @ X0))))) (Tmeasure.MEASURE_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)) @ ((cHOL4.min.= @ X3) @ ((cHOL4.pred_set.UNION @ X1) @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ X3)) @ ((cHOL4.realax.real_add @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.measure.measure @ X0) @ X2))))))))))))) (Tmeasure.MEASURE_COUNTABLE_INCREASING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.pred_set.SUBSET @ (X2 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3)))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV)))))))) @ ((cHOL4.seq.--> @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X2)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tmeasure.MEASURE_SPACE_REDUCE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.measure.measure @ X0)))) @ X0)))) (Tmeasure.SPACE_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.measure.space @ ((cHOL4.measure.sigma @ X0) @ X1))) @ X0)))))) (Tmeasure.MONOTONE_CONVERGENCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.pred_set.SUBSET @ (X2 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3)))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))))))) @ ((cHOL4.seq.--> @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X2)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tmeasure.SIGMA_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ X0) @ X1)))) @ ((cHOL4.measure.sigma @ X0) @ X1))))))) (Tmeasure.MEASURABLE_SETS_SUBSET_SPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.m_space @ X0)))))))) (Tmeasure.MEASURABLE_DIFF_PROPERTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.space @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.subsets @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X2) @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X1)) @ X3))) @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)))))))))))))) (Tmeasure.MEASURABLE_BIGUNION_PROPERTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.space @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.subsets @ X0))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X4) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X2) @ (cHOL4.pred_set.BIGUNION @ X4))) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (cHOL4.util_prob.PREIMAGE @ X2)) @ X4)))))))))))))) (Tmeasure.MEASUBABLE_BIGUNION_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.space @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.subsets @ X0))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X4)) @ ((cHOL4.pred_set.SUBSET @ X4) @ ((cHOL4.pred_set.IMAGE @ (cHOL4.util_prob.PREIMAGE @ X2)) @ (cHOL4.measure.subsets @ X1))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X4)) @ ((cHOL4.pred_set.IMAGE @ (cHOL4.util_prob.PREIMAGE @ X2)) @ (cHOL4.measure.subsets @ X1)))))))))))))) (Tmeasure.MEASURABLE_SIGMA_PREIMAGES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.space @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.subsets @ X0))))))))) @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pred_set.IMAGE @ (cHOL4.util_prob.PREIMAGE @ X2)) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.space @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.space @ X0))) @ (cHOL4.measure.subsets @ X0)))))))))))))))) (Tmeasure.MEASURABLE_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ X3))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X4)) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))))))) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ ((cHOL4.measure.sigma @ X3) @ X2))))))))))))) (Tmeasure.MEASURABLE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.measure.measurable @ X0) @ X1)) @ ((cHOL4.measure.measurable @ X0) @ ((cHOL4.measure.sigma @ (cHOL4.measure.space @ X1)) @ (cHOL4.measure.subsets @ X1))))))))) (Tmeasure.MEASURABLE_LIFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ X2))) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ ((cHOL4.measure.sigma @ (cHOL4.measure.space @ X2)) @ (cHOL4.measure.subsets @ X2)))))))))))) (Tmeasure.IN_MEASURE_PRESERVING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measure_preserving @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X3)) @ (cHOL4.measure.m_space @ X0)))) @ ((cHOL4.measure.measure @ X1) @ X3)))))))))))))))) (Tmeasure.MEASURE_PRESERVING_LIFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ (cHOL4.measure.m_space @ X1)) @ X2)))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measure_preserving @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.measure.measure @ X1))))))))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measure_preserving @ X0) @ X1)))))))))))) (Tmeasure.MEASURE_PRESERVING_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X1)) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ (cHOL4.measure.m_space @ X1)) @ X2)))))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.measure.measure_preserving @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.measure.measure @ X1))))) @ ((cHOL4.measure.measure_preserving @ X0) @ X1)))))))))) (Tmeasure.MEASURABLE_I,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool.IN @ cHOL4.combin.I) @ ((cHOL4.measure.measurable @ X0) @ X0)))))) (Tmeasure.MEASURABLE_COMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X2) @ X3))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X3) @ X4)))) @ ((cHOL4.bool.IN @ ((cHOL4.combin.o @ X1) @ X0)) @ ((cHOL4.measure.measurable @ X2) @ X4)))))))))))))) (Tmeasure.MEASURABLE_COMP_STRONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X2) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X3)) @ (cHOL4.measure.space @ X4)))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.subsets @ X4))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X1) @ X5)) @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.measure.space @ X2)))) @ (cHOL4.measure.subsets @ X3))))))))) @ ((cHOL4.bool.IN @ ((cHOL4.combin.o @ X1) @ X0)) @ ((cHOL4.measure.measurable @ X2) @ X4)))))))))))))) (Tmeasure.MEASURABLE_COMP_STRONGER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X2) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X3)) @ (cHOL4.measure.space @ X4)))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.measure.space @ X2))) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.measure.subsets @ X4))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X1) @ X6)) @ X5)) @ (cHOL4.measure.subsets @ X3)))))))))) @ ((cHOL4.bool.IN @ ((cHOL4.combin.o @ X1) @ X0)) @ ((cHOL4.measure.measurable @ X2) @ X4)))))))))))))))) (Tmeasure.MEASURABLE_UP_LIFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ X0) @ X2))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))) @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X3)))))))))))))) (Tmeasure.MEASURABLE_UP_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ X0) @ X2)))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X3)))))))))))) (Tmeasure.MEASURABLE_UP_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.measure.measurable @ X0) @ X1)) @ ((cHOL4.measure.measurable @ ((cHOL4.measure.sigma @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ X1))))))) (Tmeasure.MEASURE_PRESERVING_UP_LIFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measure_preserving @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.measure.measure @ X1)))) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.measurable_sets @ X1)))) @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.measure.measurable_sets @ X1)))))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measure_preserving @ X1) @ X2)))))))))))) (Tmeasure.MEASURE_PRESERVING_UP_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.measure.measurable_sets @ X1))) @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.measurable_sets @ X1)))))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.measure.measure_preserving @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.measure.measure @ X1)))) @ X2)) @ ((cHOL4.measure.measure_preserving @ X1) @ X2)))))))))) (Tmeasure.MEASURE_PRESERVING_UP_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.measure.subsets @ ((cHOL4.measure.sigma @ (cHOL4.measure.m_space @ X0)) @ X2))))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.measure.measure_preserving @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.measure.measure @ X0)))) @ X1)) @ ((cHOL4.measure.measure_preserving @ X0) @ X1)))))))))) (Tmeasure.MEASURABLE_PROD_SIGMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.combin.o @ cHOL4.pair.FST) @ X3)) @ ((cHOL4.measure.measurable @ X0) @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.combin.o @ cHOL4.pair.SND) @ X3)) @ ((cHOL4.measure.measurable @ X0) @ X2))))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measurable @ X0) @ ((cHOL4.measure.sigma @ ((cHOL4.pred_set.CROSS @ (cHOL4.measure.space @ X1)) @ (cHOL4.measure.space @ X2))) @ ((cHOL4.util_prob.prod_sets @ (cHOL4.measure.subsets @ X1)) @ (cHOL4.measure.subsets @ X2))))))))))))))) (Tmeasure.MEASURABLE_RANGE_REDUCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.pred_set.POW @ X2))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.INTER @ X2) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.measure.m_space @ X0)))) @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.INTER @ X2) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.measure.m_space @ X0))))))))))))))) (Tmeasure.MEASURABLE_POW_TO_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pair.|comma| @ cHOL4.pred_set.UNIV) @ (cHOL4.pred_set.POW @ cHOL4.pred_set.UNIV)))))))))) (Tmeasure.MEASURABLE_POW_TO_POW_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.measure.measurable_sets @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.measure.m_space @ X0))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.measure.m_space @ X0))) @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.measure.m_space @ X0)))))))))))) (Tmeasure.MEASURE_SPACE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X0)) @ X2))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X1)) @ X2))))))))))) (Tmeasure.STRONG_MEASURE_SPACE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.POW @ X1)) @ (cHOL4.measure.measurable_sets @ X0))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ X1)) @ (cHOL4.measure.measure @ X0)))))))))) (Tmeasure.MEASURE_REAL_SUM_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ (cHOL4.pred_set.FINITE @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ X1)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X2]: ((cHOL4.measure.measure @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))) @ X1)))))))) (Tmeasure.SIGMA_POW,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.measure.sigma @ X0) @ (cHOL4.pred_set.POW @ X0))) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.pred_set.POW @ X0)))))) (Tmeasure.finite_additivity_sufficient_for_finite_spaces,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1)))) @ (cHOL4.measure.additive @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X0)) @ X1))))))))) (Tmeasure.finite_additivity_sufficient_for_finite_spaces2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.m_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ (cHOL4.measure.additive @ X0))))) @ (cHOL4.measure.measure_space @ X0))))) (Tmeasure.IMAGE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.INSERT @ (X0 @ X1)) @ cHOL4.pred_set.EMPTY))))))) (Tmeasure.SUBSET_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.pred_set.BIGINTER @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2)))))))))) (Tmeasure.MEASURE_SPACE_INCREASING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.measure.increasing @ X0))))) (Tmeasure.MEASURE_SPACE_POSITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.measure.positive @ X0))))) (Tmeasure.MEASURE_SPACE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X1) @ X2)) @ (cHOL4.measure.measurable_sets @ X0)))))))))) (Tmeasure.MEASURE_SPACE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ (cHOL4.measure.measurable_sets @ X0)))))))))) (Tmeasure.MEASURE_SPACE_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X1) @ X2)) @ (cHOL4.measure.measurable_sets @ X0)))))))))) (Tmeasure.MEASURE_COMPL_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.measure.measurable_sets @ X1))) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X1) @ ((cHOL4.pred_set.DIFF @ X2) @ X0))) @ ((cHOL4.real.real_sub @ ((cHOL4.measure.measure @ X1) @ X2)) @ ((cHOL4.measure.measure @ X1) @ X0))))))))))) (Tmeasure.MEASURE_SPACE_BIGUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (X1 @ X2)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.measurable_sets @ X0)))))))) (Tmeasure.MEASURE_SPACE_IN_MSPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.m_space @ X0))))))))))) (Tmeasure.MEASURE_SPACE_SUBSET_MSPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X1)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.measure.measurable_sets @ X1)))) @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.measure.m_space @ X1)))))))) (Tmeasure.MEASURE_SPACE_EMPTY_MEASURABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.measurable_sets @ X0)))))) (Tmeasure.MEASURE_SPACE_MSPACE_MEASURABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0)))))) (Tmeasure.SIGMA_ALGEBRA_FN_BIGINTER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.measure.subset_class @ (cHOL4.measure.space @ X0)) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.measure.space @ X0)) @ X1)) @ (cHOL4.measure.subsets @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.subsets @ X0)))))))))))) (Tmeasure.MEASURE_SPACE_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (X1 @ X2)) @ (cHOL4.measure.measurable_sets @ X0)))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.measure.measurable_sets @ X0)))))))) (Tmeasure.MONOTONE_CONVERGENCE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.SUBSET @ (X1 @ X2)) @ (X1 @ (cHOL4.num.SUC @ X2)))))))) @ ((cHOL4.seq.--> @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1)) @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))))))))) (Tmeasure.MONOTONE_CONVERGENCE_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.pred_set.SUBSET @ (X2 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))))))) @ ((cHOL4.seq.--> @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X2)) @ ((cHOL4.measure.measure @ X0) @ X1)))))))))) (Tmeasure.MONOTONE_CONVERGENCE_BIGINTER2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.SUBSET @ (X1 @ (cHOL4.num.SUC @ X2))) @ (X1 @ X2))))))) @ ((cHOL4.seq.--> @ ((cHOL4.combin.o @ (cHOL4.measure.measure @ X0)) @ X1)) @ ((cHOL4.measure.measure @ X0) @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))))))))) (Tmeasure.MEASURE_SPACE_RESTRICTED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.measurable_sets @ X0)))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.IMAGE @ (^[X2]: ((cHOL4.pred_set.INTER @ X1) @ X2))) @ (cHOL4.measure.measurable_sets @ X0))) @ (cHOL4.measure.measure @ X0)))))))))) (Tmeasure.MEASURE_SPACE_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.measurable_sets @ X0)) @ (^[X2]: ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.measure.measure @ X0) @ X2)))))))))))) (Tmeasure.BIGUNION_IMAGE_Q,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.extreal.Q_set) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.extreal.Q_set))) @ (cHOL4.measure.subsets @ X0)))))))) (Tmeasure.SIGMA_ALGEBRA_BOREL,(cHOL4.measure.sigma_algebra @ cHOL4.measure.Borel)) (Tmeasure.MEASURABLE_BOREL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ X3) @ X2)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_NEGINF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.NegInf))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X4))) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X4)) @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X4))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X4)) @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT6,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X4))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X4)) @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT7,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X4))) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X4)) @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT8,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.min.= @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALT9,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.measure.space @ X1)) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X3)) @ X2)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X3)) @ X2)))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.min.= @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.space @ X1))) @ (cHOL4.measure.subsets @ X1))))))))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ALL_MEASURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X1)) @ (cHOL4.measure.measurable_sets @ X1))) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X2) @ (X0 @ X3))) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ X4)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.min.= @ (X0 @ X3)) @ X2))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X3)) @ X2)))))) @ (cHOL4.measure.m_space @ X1))) @ (cHOL4.measure.measurable_sets @ X1))))))))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X2) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X2) @ cHOL4.measure.Borel)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_lt @ (X0 @ X3)) @ (X1 @ X3)))))) @ (cHOL4.measure.space @ X2))) @ (cHOL4.measure.subsets @ X2)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ X2) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X2) @ cHOL4.measure.Borel)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.extreal.extreal_le @ (X0 @ X3)) @ (X1 @ X3)))))) @ (cHOL4.measure.space @ X2))) @ (cHOL4.measure.subsets @ X2)))))))))) (Tmeasure.SPACE_BOREL,((cHOL4.min.= @ (cHOL4.measure.space @ cHOL4.measure.Borel)) @ cHOL4.pred_set.UNIV)) (Tmeasure.BOREL_MEASURABLE_SETS1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_lt @ X1) @ X0))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) (Tmeasure.BOREL_MEASURABLE_SETS2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) (Tmeasure.BOREL_MEASURABLE_SETS3,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_le @ X1) @ X0))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) (Tmeasure.BOREL_MEASURABLE_SETS4,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) (Tmeasure.BOREL_MEASURABLE_SETS5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X1)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) (Tmeasure.BOREL_MEASURABLE_SETS6,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X2)) @ ((cHOL4.extreal.extreal_le @ X2) @ X1)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) (Tmeasure.BOREL_MEASURABLE_SETS7,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X2)) @ ((cHOL4.extreal.extreal_le @ X2) @ X1)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) (Tmeasure.BOREL_MEASURABLE_SETS8,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X2)) @ ((cHOL4.extreal.extreal_lt @ X2) @ X1)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) (Tmeasure.BOREL_MEASURABLE_SETS9,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) (Tmeasure.BOREL_MEASURABLE_SETS10,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) (Tmeasure.BOREL_MEASURABLE_SETS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_lt @ X1) @ X0))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_le @ X0) @ X1))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_lt @ X0) @ X1))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.extreal.extreal_le @ X1) @ X0))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_lt @ X1) @ X2)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_lt @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.extreal.extreal_le @ X0) @ X1)) @ ((cHOL4.extreal.extreal_le @ X1) @ X2)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0)))))) @ (cHOL4.measure.subsets @ cHOL4.measure.Borel)))))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X2 @ X3)) @ X1)))))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_INDICATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.measure.subsets @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X2 @ X3)) @ ((cHOL4.measure.indicator_fn @ X1) @ X3)))))))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X2 @ X4)) @ ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X3)) @ (X1 @ X4))))))))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X2 @ X3)) @ (cHOL4.extreal.extreal_abs @ (X1 @ X3))))))))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_SQR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X2 @ X3)) @ ((cHOL4.extreal.extreal_pow @ (X1 @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X3 @ X4)) @ ((cHOL4.extreal.extreal_add @ (X1 @ X4)) @ (X2 @ X4)))))))))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X3 @ X4)) @ ((cHOL4.extreal.extreal_sub @ (X1 @ X4)) @ (X2 @ X4)))))))))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X4)) @ cHOL4.extreal.NegInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X4)) @ cHOL4.extreal.PosInf))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X4)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X4)) @ cHOL4.extreal.PosInf))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X3 @ X4)) @ ((cHOL4.extreal.extreal_mul @ (X1 @ X4)) @ (X2 @ X4))))))))))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.bool.IN @ (X1 @ X4)) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.space @ X0))) @ ((cHOL4.min.= @ (X2 @ X5)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X4]: ((X1 @ X4) @ X5))) @ X3))))))))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))))) (Tmeasure.IN_MEASURABLE_BOREL_CMUL_INDICATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0)))) @ ((cHOL4.bool.IN @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ ((cHOL4.measure.indicator_fn @ X2) @ X3)))) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_MUL_INDICATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.measure.subsets @ X0))))) @ ((cHOL4.bool.IN @ (^[X3]: ((cHOL4.extreal.extreal_mul @ (X1 @ X3)) @ ((cHOL4.measure.indicator_fn @ X2) @ X3)))) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_MUL_INDICATOR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (X1 @ X2)) @ ((cHOL4.measure.indicator_fn @ (cHOL4.measure.space @ X0)) @ X2)))) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))))))))) (Tmeasure.IN_MEASURABLE_BOREL_POS_SIMPLE_FN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (((((cHOL4.measure.pos_simple_fn @ X0) @ X1) @ X2) @ X3) @ X4))))))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.measure.m_space @ X0)) @ (cHOL4.measure.measurable_sets @ X0))) @ cHOL4.measure.Borel)))))))) (Tmeasure.IN_MEASURABLE_BOREL_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.space @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.extreal.PosInf))))))))) @ ((cHOL4.bool.IN @ (^[X3]: ((cHOL4.extreal.extreal_pow @ (X2 @ X3)) @ X0))) @ ((cHOL4.measure.measurable @ X1) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))))) @ ((cHOL4.bool.IN @ (^[X3]: ((cHOL4.extreal.extreal_max @ (X1 @ X3)) @ (X2 @ X3)))) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_MONO_SUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ (X0 @ X3)) @ ((cHOL4.measure.measurable @ X2) @ cHOL4.measure.Borel))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X2))) @ ((cHOL4.extreal.extreal_le @ ((X0 @ X3) @ X4)) @ ((X0 @ (cHOL4.num.SUC @ X3)) @ X4)))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ (cHOL4.measure.space @ X2))) @ ((cHOL4.min.= @ (X1 @ X4)) @ (cHOL4.extreal.extreal_sup @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((X0 @ X3) @ X4))) @ cHOL4.pred_set.UNIV)))))))))) @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X2) @ cHOL4.measure.Borel)))))))))) (Tmeasure.FN_PLUS_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.measure.fn_plus @ X0) @ X1))))))) (Tmeasure.FN_MINUS_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ ((cHOL4.measure.fn_minus @ X0) @ X1))))))) (Tmeasure.FN_PLUS_POS_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ ((cHOL4.min.= @ (cHOL4.measure.fn_plus @ X0)) @ X0))))) (Tmeasure.FN_MINUS_POS_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.extreal.extreal_le @ (cHOL4.extreal.extreal_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ ((cHOL4.min.= @ (cHOL4.measure.fn_minus @ X0)) @ (^[X1]: (cHOL4.extreal.extreal_of_num @ cHOL4.num.0))))))) (Tmeasure.FN_PLUS_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.measure.fn_plus @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ ((cHOL4.measure.fn_plus @ X0) @ X2)))))) @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.measure.fn_plus @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.Normal @ X1))) @ ((cHOL4.measure.fn_minus @ X0) @ X2))))))))))) (Tmeasure.FN_MINUS_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.measure.fn_minus @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ ((cHOL4.measure.fn_minus @ X0) @ X2)))))) @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.measure.fn_minus @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.Normal @ X1)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.extreal.extreal_mul @ (cHOL4.extreal.extreal_ainv @ (cHOL4.extreal.Normal @ X1))) @ ((cHOL4.measure.fn_plus @ X0) @ X2))))))))))) (Tmeasure.FN_PLUS_ADD_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ ((cHOL4.measure.fn_plus @ (^[X2]: ((cHOL4.extreal.extreal_add @ (X0 @ X2)) @ (X1 @ X2)))) @ X2)) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.measure.fn_plus @ X0) @ X2)) @ ((cHOL4.measure.fn_plus @ X1) @ X2)))))))))) (Tmeasure.FN_MINUS_ADD_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.extreal.extreal_le @ ((cHOL4.measure.fn_minus @ (^[X2]: ((cHOL4.extreal.extreal_add @ (X0 @ X2)) @ (X1 @ X2)))) @ X2)) @ ((cHOL4.extreal.extreal_add @ ((cHOL4.measure.fn_minus @ X0) @ X2)) @ ((cHOL4.measure.fn_minus @ X1) @ X2)))))))))) (Tmeasure.IN_MEASURABLE_BOREL_FN_PLUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ (cHOL4.measure.fn_plus @ X1)) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))) (Tmeasure.IN_MEASURABLE_BOREL_FN_MINUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ (cHOL4.measure.fn_minus @ X1)) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel)))))))) (Tmeasure.IN_MEASURABLE_BOREL_PLUS_MINUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.measure.fn_plus @ X1)) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))) @ ((cHOL4.bool.IN @ (cHOL4.measure.fn_minus @ X1)) @ ((cHOL4.measure.measurable @ X0) @ cHOL4.measure.Borel))))))))) (Tmeasure.INDICATOR_FN_MUL_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (^[X2]: ((cHOL4.extreal.extreal_mul @ ((cHOL4.measure.indicator_fn @ X0) @ X2)) @ ((cHOL4.measure.indicator_fn @ X1) @ X2)))) @ (^[X2]: ((cHOL4.measure.indicator_fn @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ X2)))))))) (Tmeasure.indicator_fn_split,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ X0))) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X3)) @ (X2 @ X4)))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X5) @ X1)) @ ((cHOL4.min.= @ (cHOL4.measure.indicator_fn @ X5)) @ (^[X6]: ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X3]: ((cHOL4.measure.indicator_fn @ ((cHOL4.pred_set.INTER @ X5) @ (X2 @ X3))) @ X6))) @ X0)))))))))))))) (Tmeasure.indicator_fn_suminf,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X0 @ X2)) @ (X0 @ X3)))))))) @ ((cHOL4.min.= @ (cHOL4.extreal.ext_suminf @ (^[X4]: ((cHOL4.measure.indicator_fn @ (X0 @ X4)) @ X1)))) @ ((cHOL4.measure.indicator_fn @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))) @ X1)))))))) (Tmeasure.measure_split,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ (cHOL4.measure.m_space @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X3)) @ (X1 @ X4)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool.IN @ (X1 @ X3)) @ (cHOL4.measure.measurable_sets @ X2)))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.measurable_sets @ X2))) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X2) @ X5)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.measure.measure @ X2) @ ((cHOL4.pred_set.INTER @ X5) @ (X1 @ X3))))) @ X0))))))))))))) (Tnets.dorder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X1)) @ ((X0 @ X2) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ ((cHOL4.bool./\ @ ((X0 @ X4) @ X1)) @ ((X0 @ X4) @ X2))))))))))))))))) (Tnets.tends,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.nets.tends @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.topology.neigh @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X1))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((X3 @ X5) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X3 @ X6) @ X5)) @ (X4 @ (X0 @ X6))))))))))))))))))))) (Tnets.bounded,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((X1 @ X5) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X1 @ X6) @ X5)) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ (X2 @ X6)) @ X4))) @ X3))))))))))))))))))) (Tnets.tendsto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.nets.tendsto @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.real.real_lte @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3)))))))))))))) (Tnets.DORDER_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ (X1 @ X4)))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ (X2 @ X4))))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ (X2 @ X4))))))))))))))))) (Tnets.DORDER_NGE,(cHOL4.nets.dorder @ cHOL4.arithmetic.>=)) (Tnets.DORDER_TENDSTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.nets.dorder @ (cHOL4.nets.tendsto @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tnets.MTOP_TENDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.nets.tends @ X2) @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ X0)) @ X1))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((X1 @ X5) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X1 @ X6) @ X5)) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ (X2 @ X6)) @ X3))) @ X4)))))))))))))))))))) (Tnets.MTOP_TENDS_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X3)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X2) @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ X4)) @ X3))) @ (((cHOL4.nets.tends @ X2) @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ X4)) @ X3)))) @ ((cHOL4.min.= @ X1) @ X0)))))))))))))) (Tnets.SEQ_TENDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ X0)) @ cHOL4.arithmetic.>=))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X5) @ X4)) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ (X1 @ X5)) @ X2))) @ X3))))))))))))))))) (Tnets.LIM_TENDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.topology.limpt @ (cHOL4.topology.mtop @ X0)) @ X3) @ cHOL4.topology.re_universe)) @ ((cHOL4.min.= @ (((cHOL4.nets.tends @ X2) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ X1)) @ (cHOL4.nets.tendsto @ ((cHOL4.pair.|comma| @ X0) @ X3))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X6)) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X7) @ X3)))) @ ((cHOL4.real.real_lte @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X7) @ X3))) @ X6))) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X1) @ ((cHOL4.pair.|comma| @ (X2 @ X7)) @ X4))) @ X5))))))))))))))))))))))) (Tnets.LIM_TENDS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.topology.limpt @ (cHOL4.topology.mtop @ X0)) @ X3) @ cHOL4.topology.re_universe)) @ ((cHOL4.min.= @ (((cHOL4.nets.tends @ X2) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ X1)) @ (cHOL4.nets.tendsto @ ((cHOL4.pair.|comma| @ X0) @ X3))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X6)) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X7) @ X3)))) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X7) @ X3))) @ X6))) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X1) @ ((cHOL4.pair.|comma| @ (X2 @ X7)) @ X4))) @ X5))))))))))))))))))))))) (Tnets.MR1_BOUNDED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ X0)) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ (X1 @ X4))) @ X2))))))))))))))) (Tnets.NET_NULL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ (^[X3]: ((cHOL4.real.real_sub @ (X1 @ X3)) @ X2))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))))))))) (Tnets.NET_CONV_BOUNDED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ X0)) @ X1))))))))) (Tnets.NET_CONV_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X4)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))))))) (Tnets.NET_CONV_IBOUNDED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ X0)) @ (^[X3]: (cHOL4.realax.inv @ (X1 @ X3)))))))))))) (Tnets.NET_NULL_ADD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))) @ (((cHOL4.nets.tends @ (^[X3]: ((cHOL4.realax.real_add @ (X1 @ X3)) @ (X2 @ X3)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))) (Tnets.NET_NULL_MUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ X0)) @ X1)) @ (((cHOL4.nets.tends @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))) @ (((cHOL4.nets.tends @ (^[X3]: ((cHOL4.realax.real_mul @ (X1 @ X3)) @ (X2 @ X3)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))) (Tnets.NET_NULL_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.nets.tends @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ (^[X3]: ((cHOL4.realax.real_mul @ X1) @ (X2 @ X3)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))))))))) (Tnets.NET_ADD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ X3) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))) @ (((cHOL4.nets.tends @ (^[X5]: ((cHOL4.realax.real_add @ (X1 @ X5)) @ (X3 @ X5)))) @ ((cHOL4.realax.real_add @ X2) @ X4)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))))))) (Tnets.NET_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ (^[X3]: (cHOL4.realax.real_neg @ (X1 @ X3)))) @ (cHOL4.realax.real_neg @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))) (Tnets.NET_SUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ X3) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))) @ (((cHOL4.nets.tends @ (^[X5]: ((cHOL4.real.real_sub @ (X1 @ X5)) @ (X3 @ X5)))) @ ((cHOL4.real.real_sub @ X2) @ X4)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))))))) (Tnets.NET_MUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ X2) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))) @ (((cHOL4.nets.tends @ (^[X5]: ((cHOL4.realax.real_mul @ (X1 @ X5)) @ (X2 @ X5)))) @ ((cHOL4.realax.real_mul @ X3) @ X4)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))))))) (Tnets.NET_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (((cHOL4.nets.tends @ (^[X3]: (cHOL4.realax.inv @ (X1 @ X3)))) @ (cHOL4.realax.inv @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))) (Tnets.NET_DIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X3) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ (((cHOL4.nets.tends @ (^[X5]: ((cHOL4.real./ @ (X1 @ X5)) @ (X3 @ X5)))) @ ((cHOL4.real./ @ X2) @ X4)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))))))))))))))) (Tnets.NET_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (((cHOL4.nets.tends @ (^[X3]: (cHOL4.real.abs @ (X1 @ X3)))) @ (cHOL4.real.abs @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0)))))))))) (Tnets.NET_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.nets.dorder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X1) @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ ((cHOL4.bool./\ @ (((cHOL4.nets.tends @ X3) @ X4) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((X0 @ X5) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X0 @ X6) @ X5)) @ ((cHOL4.real.real_lte @ (X1 @ X6)) @ (X3 @ X6))))))))))) @ ((cHOL4.real.real_lte @ X2) @ X4)))))))))))))) (TnormalForms.EXT_POINT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ ((cHOL4.normalForms.EXT_POINT @ X0) @ X1))) @ (X1 @ ((cHOL4.normalForms.EXT_POINT @ X0) @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))))))) (TnormalForms.UNIV_POINT_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (X0 @ (cHOL4.normalForms.UNIV_POINT @ X0))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (TnormalForms.EXT_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ ((cHOL4.normalForms.EXT_POINT @ X0) @ X1))) @ (X1 @ ((cHOL4.normalForms.EXT_POINT @ X0) @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))))))) (TnormalForms.UNIV_POINT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (X0 @ (cHOL4.normalForms.UNIV_POINT @ X0))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tnumeral_bit.iMOD_2EXP,((cHOL4.min.= @ cHOL4.numeral_bit.iMOD_2EXP) @ cHOL4.bit.MOD_2EXP)) (Tnumeral_bit.BIT_REV_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ cHOL4.num.0) @ X0) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.num.SUC @ X2)) @ X0) @ X1)) @ (((cHOL4.numeral_bit.BIT_REV @ X2) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.bit.SBIT @ (cHOL4.arithmetic.ODD @ X0)) @ cHOL4.num.0)))))))))))) (Tnumeral_bit.BIT_MODF_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ cHOL4.num.0) @ X0) @ X1) @ X2) @ X3) @ X4)) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.num.SUC @ X5)) @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ X5) @ X0) @ ((cHOL4.arithmetic.DIV @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X3)) @ (((cHOL4.bool.COND @ ((X0 @ X2) @ (cHOL4.arithmetic.ODD @ X1))) @ ((cHOL4.arithmetic.+ @ X3) @ X4)) @ X4))))))))))))))))) (Tnumeral_bit.iBITWISE_def,((cHOL4.min.= @ cHOL4.numeral_bit.iBITWISE) @ cHOL4.bit.BITWISE)) (Tnumeral_bit.iSUC,((cHOL4.min.= @ cHOL4.numeral_bit.iSUC) @ cHOL4.num.SUC)) (Tnumeral_bit.iDIV2,((cHOL4.min.= @ cHOL4.numeral_bit.iDIV2) @ cHOL4.arithmetic.DIV2)) (Tnumeral_bit.SFUNPOW_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ X0) @ cHOL4.num.0) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ X0) @ (cHOL4.num.SUC @ X2)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ cHOL4.num.0) @ (((cHOL4.numeral_bit.SFUNPOW @ X0) @ X2) @ (X0 @ X1)))))))))))) (Tnumeral_bit.FDUB_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ X0) @ (cHOL4.num.SUC @ X1))) @ (X0 @ (X0 @ (cHOL4.num.SUC @ X1)))))))))) (Tnumeral_bit.iLOG2_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral_bit.iLOG2 @ X0)) @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tnumeral_bit.numeral_imod_2exp,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.iMOD_2EXP @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.iMOD_2EXP @ X1) @ cHOL4.num.0)) @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.iMOD_2EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT1 @ ((cHOL4.numeral_bit.iMOD_2EXP @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.iMOD_2EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT1 @ ((cHOL4.numeral_bit.iMOD_2EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.iMOD_2EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.numeral.iDUB @ ((cHOL4.numeral_bit.iMOD_2EXP @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.num.SUC @ X0))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.iMOD_2EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.numeral.iDUB @ ((cHOL4.numeral_bit.iMOD_2EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.num.SUC @ X0)))))))))))))) (Tnumeral_bit.MOD_2EXP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP @ X0) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.numeral_bit.iMOD_2EXP @ X0) @ X1))))))))) (Tnumeral_bit.DIV_2EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.DIV_2EXP @ X0) @ X1)) @ (((cHOL4.arithmetic.FUNPOW @ cHOL4.arithmetic.DIV2) @ X0) @ X1))))))) (Tnumeral_bit.numeral_mod2,((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.num.0)))))) (Tnumeral_bit.iDUB_NUMERAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iDUB @ X0)))))) (Tnumeral_bit.BIT_REVERSE_EVAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT_REVERSE @ X0) @ X1)) @ (((cHOL4.numeral_bit.BIT_REV @ X0) @ X1) @ cHOL4.num.0))))))) (Tnumeral_bit.BIT_MODIFY_EVAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BIT_MODIFY @ X0) @ X1) @ X2)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ X0) @ X1) @ X2) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))))))))) (Tnumeral_bit.iBITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.numeral_bit.iBITWISE @ cHOL4.num.0) @ X0) @ X1) @ X2)) @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.numeral_bit.iBITWISE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ X0) @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((X0 @ (cHOL4.arithmetic.ODD @ X1)) @ (cHOL4.arithmetic.ODD @ X2))) @ (cHOL4.arithmetic.BIT1 @ X4)) @ (cHOL4.numeral.iDUB @ X4)))) @ ((((cHOL4.numeral_bit.iBITWISE @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0) @ (cHOL4.arithmetic.DIV2 @ X1)) @ (cHOL4.arithmetic.DIV2 @ X2))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.numeral_bit.iBITWISE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X3))) @ X0) @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((X0 @ (cHOL4.arithmetic.ODD @ X1)) @ (cHOL4.arithmetic.ODD @ X2))) @ (cHOL4.arithmetic.BIT1 @ X4)) @ (cHOL4.numeral.iDUB @ X4)))) @ ((((cHOL4.numeral_bit.iBITWISE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ X0) @ (cHOL4.arithmetic.DIV2 @ X1)) @ (cHOL4.arithmetic.DIV2 @ X2))))))))))))))) (Tnumeral_bit.NUMERAL_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ X0) @ X1) @ cHOL4.num.0) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ ((((cHOL4.numeral_bit.iBITWISE @ X0) @ X1) @ cHOL4.num.0) @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ X0) @ X1) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ ((((cHOL4.numeral_bit.iBITWISE @ X0) @ X1) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ X0) @ X1) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ X4))) @ (cHOL4.arithmetic.NUMERAL @ ((((cHOL4.numeral_bit.iBITWISE @ X0) @ X1) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ X4))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.bit.BITWISE @ X0) @ X1) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ (cHOL4.arithmetic.NUMERAL @ X4))) @ (cHOL4.arithmetic.NUMERAL @ ((((cHOL4.numeral_bit.iBITWISE @ X0) @ X1) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ (cHOL4.arithmetic.NUMERAL @ X4)))))))))))))))) (Tnumeral_bit.NUMERAL_BIT_REV,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ cHOL4.num.0) @ X0) @ X1)) @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ cHOL4.num.0) @ X1)) @ (((cHOL4.numeral_bit.BIT_REV @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ (cHOL4.numeral.iDUB @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ cHOL4.num.0) @ X1)) @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ cHOL4.num.0) @ (cHOL4.numeral.iDUB @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X1)) @ (((cHOL4.numeral_bit.BIT_REV @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)) @ (cHOL4.numeral.iDUB @ X1))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X1)) @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)) @ (cHOL4.numeral.iDUB @ X1))))))))))))))) (Tnumeral_bit.NUMERAL_BIT_REVERSE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.BIT_REVERSE @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0) @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.BIT_REVERSE @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.numeral_bit.BIT_REV @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1)) @ cHOL4.num.0))))))))) (Tnumeral_bit.NUMERAL_BIT_MODF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ cHOL4.num.0) @ X0) @ X1) @ X2) @ X3) @ X4)) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X5))) @ X0) @ cHOL4.num.0) @ X2) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X5))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0) @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iDUB @ X3))) @ (((cHOL4.bool.COND @ ((X0 @ X2) @ cHOL4.bool.F)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ X4)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X5))) @ X0) @ cHOL4.num.0) @ X2) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X5))) @ X0) @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iDUB @ X3))) @ (((cHOL4.bool.COND @ ((X0 @ X2) @ cHOL4.bool.F)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ X4)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X5))) @ X0) @ (cHOL4.arithmetic.NUMERAL @ X1)) @ X2) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X5))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0) @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iDUB @ X3))) @ (((cHOL4.bool.COND @ ((X0 @ X2) @ (cHOL4.arithmetic.ODD @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ X4)))))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X5))) @ X0) @ (cHOL4.arithmetic.NUMERAL @ X1)) @ X2) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X5))) @ X0) @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iDUB @ X3))) @ (((cHOL4.bool.COND @ ((X0 @ X2) @ (cHOL4.arithmetic.ODD @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ X3)) @ X4)) @ X4)))))))))))))))))))) (Tnumeral_bit.NUMERAL_BIT_MODIFY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.BIT_MODIFY @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X1) @ cHOL4.num.0)) @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X1) @ cHOL4.num.0) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bit.BIT_MODIFY @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X1) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((((((cHOL4.numeral_bit.BIT_MODF @ (cHOL4.arithmetic.NUMERAL @ X0)) @ X1) @ (cHOL4.arithmetic.NUMERAL @ X2)) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0)))))))))) (Tnumeral_bit.NUMERAL_TIMES_2EXP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.TIMES_2EXP @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.TIMES_2EXP @ X0) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral.iDUB) @ X0) @ X1))))))))) (Tnumeral_bit.NUMERAL_iDIV2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iDIV2 @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.numeral_bit.iSUC @ cHOL4.num.0))) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.arithmetic.BIT1 @ X0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.numeral_bit.iSUC @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.numeral_bit.iSUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.numeral_bit.iSUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.numeral_bit.iSUC @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.numeral_bit.iSUC @ X0))) @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral_bit.iSUC @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.num.SUC @ X0)))))))))))) (Tnumeral_bit.NUMERAL_DIV_2EXP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.DIV_2EXP @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.DIV_2EXP @ X0) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral_bit.iDIV2) @ X0) @ X1))))))))) (Tnumeral_bit.NUMERAL_SFUNPOW_iDIV2,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral_bit.iDIV2) @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral_bit.iDIV2) @ X1) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral_bit.iDIV2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X0)) @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ cHOL4.numeral_bit.iDIV2)) @ (cHOL4.arithmetic.NUMERAL @ X2)) @ (cHOL4.numeral_bit.iDIV2 @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral_bit.iDIV2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X0)) @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ cHOL4.numeral_bit.iDIV2)) @ (cHOL4.arithmetic.NUMERAL @ X2)) @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.numeral_bit.iDIV2 @ X0)))))))))))) (Tnumeral_bit.NUMERAL_SFUNPOW_iDUB,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral.iDUB) @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral.iDUB) @ X1) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral.iDUB) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ X0)) @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ cHOL4.numeral.iDUB)) @ (cHOL4.arithmetic.NUMERAL @ X2)) @ (cHOL4.numeral.iDUB @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ cHOL4.numeral.iDUB) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ X0)) @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ cHOL4.numeral.iDUB)) @ (cHOL4.arithmetic.NUMERAL @ X2)) @ (cHOL4.numeral.iDUB @ (cHOL4.numeral.iDUB @ X0)))))))))))) (Tnumeral_bit.NUMERAL_SFUNPOW_FDUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ X0)) @ cHOL4.num.0) @ X1)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ X0)) @ X2) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ X1)) @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ (cHOL4.numeral_bit.FDUB @ X0))) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ ((cHOL4.numeral_bit.FDUB @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X3))) @ X1)) @ (((cHOL4.numeral_bit.SFUNPOW @ (cHOL4.numeral_bit.FDUB @ (cHOL4.numeral_bit.FDUB @ X0))) @ (cHOL4.arithmetic.NUMERAL @ X3)) @ ((cHOL4.numeral_bit.FDUB @ X0) @ ((cHOL4.numeral_bit.FDUB @ X0) @ X1)))))))))))))) (Tnumeral_bit.FDUB_iDIV2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ cHOL4.numeral_bit.iDIV2) @ X0)) @ (cHOL4.numeral_bit.iDIV2 @ (cHOL4.numeral_bit.iDIV2 @ X0)))))) (Tnumeral_bit.FDUB_iDUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ cHOL4.numeral.iDUB) @ X0)) @ (cHOL4.numeral.iDUB @ (cHOL4.numeral.iDUB @ X0)))))) (Tnumeral_bit.FDUB_FDUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ (cHOL4.numeral_bit.FDUB @ X0)) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ (cHOL4.numeral_bit.FDUB @ X0)) @ (cHOL4.numeral_bit.iSUC @ X1))) @ ((cHOL4.numeral_bit.FDUB @ X0) @ ((cHOL4.numeral_bit.FDUB @ X0) @ (cHOL4.numeral_bit.iSUC @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ (cHOL4.numeral_bit.FDUB @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.numeral_bit.FDUB @ X0) @ ((cHOL4.numeral_bit.FDUB @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numeral_bit.FDUB @ (cHOL4.numeral_bit.FDUB @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.numeral_bit.FDUB @ X0) @ ((cHOL4.numeral_bit.FDUB @ X0) @ (cHOL4.arithmetic.BIT2 @ X1)))))))))))) (Tnumeral_bit.LOG_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.logroot.LOG @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ ((((cHOL4.combin.FAIL @ cHOL4.logroot.LOG) @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ cHOL4.num.0) @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ X1))))))))))))) (Tnumeral_bit.numeral_ilog2,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral_bit.iLOG2 @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral_bit.iLOG2 @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.numeral_bit.iLOG2 @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral_bit.iLOG2 @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.numeral_bit.iLOG2 @ X0)))))))) (Tnumeral_bit.numeral_log2,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bit.LOG2 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.numeral_bit.iLOG2 @ (cHOL4.numeral.iDUB @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bit.LOG2 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.numeral_bit.iLOG2 @ (cHOL4.arithmetic.BIT1 @ X0))))))) (Tnumeral_bit.MOD_2EXP_EQ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.MOD_2EXP_EQ @ cHOL4.num.0) @ X0) @ X1)) @ cHOL4.bool.T)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.bit.MOD_2EXP_EQ @ (cHOL4.num.SUC @ X2)) @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.arithmetic.ODD @ X1))) @ (((cHOL4.bit.MOD_2EXP_EQ @ X2) @ (cHOL4.arithmetic.DIV2 @ X0)) @ (cHOL4.arithmetic.DIV2 @ X1))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.bit.MOD_2EXP_EQ @ X2) @ X0) @ X0)) @ cHOL4.bool.T)))))))) (Tnumeral_bit.MOD_2EXP_MAX,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP_MAX @ cHOL4.num.0) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bit.MOD_2EXP_MAX @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.arithmetic.ODD @ X0)) @ ((cHOL4.bit.MOD_2EXP_MAX @ X1) @ (cHOL4.arithmetic.DIV2 @ X0)))))))))) (Tnumeral_bit.LOWEST_SET_BIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.bit.LOWEST_SET_BIT @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X0)) @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.bit.LOWEST_SET_BIT @ (cHOL4.arithmetic.DIV2 @ X0))))))))) (Tnumeral_bit.LOWEST_SET_BIT_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bit.LOWEST_SET_BIT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.num.SUC @ (cHOL4.bit.LOWEST_SET_BIT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.num.SUC @ X0)))))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bit.LOWEST_SET_BIT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0))))) (Tnumeral.iZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.iZ @ X0)) @ X0)))) (Tnumeral.iiSUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ X0)) @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X0)))))) (Tnumeral.iBIT_cases,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.numeral.iBIT_cases @ cHOL4.num.0) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.numeral.iBIT_cases @ (cHOL4.arithmetic.BIT1 @ X3)) @ X0) @ X1) @ X2)) @ (X1 @ X3))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.numeral.iBIT_cases @ (cHOL4.arithmetic.BIT2 @ X3)) @ X0) @ X1) @ X2)) @ (X2 @ X3))))))))))))) (Tnumeral.iDUB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ X0)) @ ((cHOL4.arithmetic.+ @ X0) @ X0))))) (Tnumeral.iSUB_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ X0) @ cHOL4.num.0) @ X1)) @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ X0) @ (cHOL4.arithmetic.BIT1 @ X2)) @ X1)) @ (((cHOL4.bool.COND @ X0) @ ((((cHOL4.numeral.iBIT_cases @ X1) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (^[X3]: (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ (^[X3]: (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3))))) @ ((((cHOL4.numeral.iBIT_cases @ X1) @ (cHOL4.numeral.iDUB @ X2)) @ (^[X3]: (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ (^[X3]: (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ X0) @ (cHOL4.arithmetic.BIT2 @ X2)) @ X1)) @ (((cHOL4.bool.COND @ X0) @ ((((cHOL4.numeral.iBIT_cases @ X1) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (^[X3]: (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ (^[X3]: (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3))))) @ ((((cHOL4.numeral.iBIT_cases @ X1) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (^[X3]: (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ (^[X3]: (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3))))))))))))))) (Tnumeral.iSQR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.iSQR @ X0)) @ ((cHOL4.arithmetic.* @ X0) @ X0))))) (Tnumeral.texp_help_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ cHOL4.num.0) @ X0)) @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.numeral.texp_help @ X1) @ (cHOL4.arithmetic.BIT1 @ X0))))))))) (Tnumeral.onecount_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral.onecount @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral.onecount @ (cHOL4.arithmetic.BIT1 @ X1)) @ X0)) @ ((cHOL4.numeral.onecount @ X1) @ (cHOL4.num.SUC @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral.onecount @ (cHOL4.arithmetic.BIT2 @ X1)) @ X0)) @ cHOL4.num.0)))))))) (Tnumeral.exactlog_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.exactlog @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.exactlog @ (cHOL4.arithmetic.BIT1 @ X0))) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numeral.exactlog @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.numeral.onecount @ X0) @ cHOL4.num.0)))))))) (Tnumeral.internal_mult_def,((cHOL4.min.= @ cHOL4.arithmetic.*) @ cHOL4.arithmetic.*)) (Tnumeral.numeral_suc,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ X0)))))))) (Tnumeral.numeral_distrib,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X0) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ cHOL4.num.0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.num.SUC @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.prim_rec.PRE @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ cHOL4.num.0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ cHOL4.num.0) @ X0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ cHOL4.num.0) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ X0) @ cHOL4.num.0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X1))) @ ((cHOL4.arithmetic.<= @ X1) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.ODD @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.EVEN @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ cHOL4.num.0))) @ (cHOL4.arithmetic.EVEN @ cHOL4.num.0))))))))))))))))))))))))))))))))))))) (Tnumeral.numeral_iisuc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ X0)))))))) (Tnumeral.numeral_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0))) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0))) @ (cHOL4.numeral.iiSUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0))) @ (cHOL4.numeral.iiSUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))))) @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))))))))))))))))))))) (Tnumeral.numeral_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT2 @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))))))))) (Tnumeral.numeral_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT2 @ X0))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))))))))) (Tnumeral.numeral_lte,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ cHOL4.num.0) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT2 @ X0)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.arithmetic.<= @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))))))))) (Tnumeral.numeral_pre,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT1 @ X0))))))))) (Tnumeral.bit_initiality,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.arithmetic.BIT1 @ X4))) @ ((X1 @ X4) @ (X3 @ X4)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.arithmetic.BIT2 @ X4))) @ ((X2 @ X4) @ (X3 @ X4)))))))))))))))) (Tnumeral.bit_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.arithmetic.BIT1 @ X1)))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.arithmetic.BIT2 @ X1)))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tnumeral.iSUB_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ X1) @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT1 @ X2)) @ cHOL4.num.0)) @ (cHOL4.numeral.iDUB @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT1 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT2 @ X2)) @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT1 @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.numeral.iDUB @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X2) @ X3)))) @ ((cHOL4.min.= @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ (cHOL4.arithmetic.BIT2 @ X2)) @ (cHOL4.arithmetic.BIT2 @ X3))) @ (cHOL4.arithmetic.BIT1 @ (((cHOL4.numeral.iSUB @ cHOL4.bool.F) @ X2) @ X3))))))))))))))))))))))) (Tnumeral.numeral_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.numeral.iSUB @ cHOL4.bool.T) @ X0) @ X1))) @ cHOL4.num.0))))))) (Tnumeral.iDUB_removal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.numeral.iDUB @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ cHOL4.num.0)) @ cHOL4.num.0)))))) (Tnumeral.numeral_mult,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X0)) @ X1)) @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.numeral.iDUB @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X0)) @ X1)) @ (cHOL4.numeral.iDUB @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ X1)))))))))))) (Tnumeral.numeral_exp,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.numeral.iSQR @ ((cHOL4.arithmetic.EXP @ X0) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.arithmetic.* @ (cHOL4.numeral.iSQR @ X0)) @ (cHOL4.numeral.iSQR @ ((cHOL4.arithmetic.EXP @ X0) @ X1))))))))))) (Tnumeral.numeral_evenodd,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.arithmetic.ODD @ (cHOL4.arithmetic.BIT1 @ X0)))))))))) (Tnumeral.numeral_fact,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.arithmetic.FACT @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.FACT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.FACT @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.FACT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.FACT @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))))))) (Tnumeral.numeral_funpow,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X2) @ cHOL4.num.0) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ (((cHOL4.arithmetic.FUNPOW @ X2) @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ (X2 @ X0)))) @ ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ (((cHOL4.arithmetic.FUNPOW @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (X2 @ X0)))))))))))) (Tnumeral.numeral_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ cHOL4.num.0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ X1) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MIN @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ X1) @ X0)))))))))) (Tnumeral.numeral_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ cHOL4.num.0) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ X1) @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MAX @ (cHOL4.arithmetic.NUMERAL @ X1)) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ X0) @ X1)))))))))) (Tnumeral.divmod_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.min.= @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ X2)) @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ ((cHOL4.bool.LET @ (^[X3]: (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.* @ X2) @ X3))) @ X2))))) @ (cHOL4.arithmetic.findq @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))))))) (Tnumeral.DIVMOD_NUMERAL_CALC,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.pair.FST @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.pair.FST @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.BIT2 @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.pair.SND @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.BIT1 @ X1))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.BIT2 @ X1))) @ (cHOL4.pair.SND @ (cHOL4.arithmetic.DIVMOD @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.BIT2 @ X1)))))))))))))) (Tnumeral.numeral_div2,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.arithmetic.DIV2 @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ X0))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.num.SUC @ X0)))))))) (Tnumeral.texp_help_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tnumeral.texp_help0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ X0) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tnumeral.numeral_texp_help,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ cHOL4.num.0) @ X1)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.BIT1 @ X0)) @ X1)) @ ((cHOL4.numeral.texp_help @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.BIT2 @ X0)) @ X1)) @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1)))))))))) (Tnumeral.TWO_EXP_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.numeral.texp_help @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ X0))) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0)))))))) (Tnumeral.onecount_characterisation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ ((cHOL4.numeral.onecount @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.numeral.onecount @ X0) @ X1)) @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tnumeral.exactlog_characterisation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.numeral.exactlog @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tnumeral.DIV2_BIT1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.DIV2 @ (cHOL4.arithmetic.BIT1 @ X0))) @ X0)))) (Tnumeral.enumeral_mult,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X2)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X2) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X1)) @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X1)) @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X1)) @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X2)) @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.DIV2 @ X2)) @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X1)) @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.numeral.exactlog @ (cHOL4.arithmetic.BIT2 @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X1)) @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X3)) @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.DIV2 @ X3)) @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X1)) @ (cHOL4.arithmetic.BIT1 @ X0))))) @ (cHOL4.numeral.exactlog @ (cHOL4.arithmetic.BIT2 @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X1)) @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X3)) @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.DIV2 @ X3)) @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT2 @ X0)))) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X2)) @ ((cHOL4.numeral.texp_help @ (cHOL4.arithmetic.DIV2 @ X2)) @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.BIT2 @ X1)))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X1)) @ (cHOL4.arithmetic.BIT2 @ X0)))))) @ (cHOL4.numeral.exactlog @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.numeral.exactlog @ (cHOL4.arithmetic.BIT2 @ X1)))))))))))))))) (Tnumeral.internal_mult_characterisation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X0)) @ X1)) @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.numeral.iDUB @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X0)) @ X1)) @ (cHOL4.numeral.iDUB @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X1)) @ X1)))))))))))) (Tnumpair.tri_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numpair.tri @ cHOL4.num.0)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.tri @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.num.SUC @ X0)) @ (cHOL4.numpair.tri @ X0))))))) (Tnumpair.invtri0_tupled_primitive_def,((cHOL4.min.= @ cHOL4.numpair.invtri0_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X2) @ X1))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ (X3 @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.- @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tnumpair.invtri0_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numpair.invtri0 @ X0) @ X1)) @ (cHOL4.numpair.invtri0_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tnumpair.invtri_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.invtri @ X0)) @ (cHOL4.pair.SND @ ((cHOL4.numpair.invtri0 @ X0) @ cHOL4.num.0)))))) (Tnumpair.npair_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numpair.npair @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.numpair.tri @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ X1))))))) (Tnumpair.nfst_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.nfst @ X0)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.numpair.tri @ (cHOL4.numpair.invtri @ X0))) @ (cHOL4.numpair.invtri @ X0))) @ X0))))) (Tnumpair.nsnd_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.nsnd @ X0)) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.numpair.tri @ (cHOL4.numpair.invtri @ X0))))))) (Tnumpair.ncons_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numpair.ncons @ X0) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.numpair.npair @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tnumpair.nlistrec_tupled_primitive_def,((cHOL4.min.= @ cHOL4.numpair.nlistrec_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.num.0))) @ ((X0 @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.numpair.nsnd @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X3)))))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X2]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X1]: (^[X3]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ X2) @ (((X1 @ (cHOL4.numpair.nfst @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.numpair.nsnd @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X4 @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.numpair.nsnd @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))) (Tnumpair.nlistrec_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.numpair.nlistrec @ X0) @ X1) @ X2)) @ (cHOL4.numpair.nlistrec_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tnumpair.nlen_def,((cHOL4.min.= @ cHOL4.numpair.nlen) @ ((cHOL4.numpair.nlistrec @ cHOL4.num.0) @ (^[X0]: (^[X1]: (^[X2]: ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tnumpair.nmap_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.nmap @ X0)) @ ((cHOL4.numpair.nlistrec @ cHOL4.num.0) @ (^[X1]: (^[X2]: (^[X3]: ((cHOL4.numpair.ncons @ (X0 @ X1)) @ X3))))))))) (Tnumpair.nfoldl_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.numpair.nfoldl @ X0) @ X1) @ X2)) @ ((((cHOL4.numpair.nlistrec @ (^[X1]: X1)) @ (^[X3]: (^[X4]: (^[X5]: (^[X1]: (X5 @ ((X0 @ X3) @ X1))))))) @ X2) @ X1))))))))) (Tnumpair.napp_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numpair.napp @ X0) @ X1)) @ (((cHOL4.numpair.nlistrec @ X1) @ (^[X2]: (^[X3]: (^[X4]: ((cHOL4.numpair.ncons @ X2) @ X4))))) @ X0))))))) (Tnumpair.tri_def_compute,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numpair.tri @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.tri @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.numpair.tri @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.tri @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.numpair.tri @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))))))))) (Tnumpair.twotri_formula,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.numpair.tri @ X0))) @ ((cHOL4.arithmetic.* @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tnumpair.tri_formula,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.tri @ X0)) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.* @ X0) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Tnumpair.tri_eq_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.numpair.tri @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.numpair.tri @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)))))) (Tnumpair.tri_LT_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.numpair.tri @ X0)) @ (cHOL4.numpair.tri @ X1)))))))) (Tnumpair.tri_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.numpair.tri @ X0)) @ (cHOL4.numpair.tri @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tnumpair.tri_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.numpair.tri @ X0)) @ (cHOL4.numpair.tri @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tnumpair.tri_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.numpair.tri @ X0)) @ (cHOL4.numpair.tri @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Tnumpair.invtri0_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((X0 @ ((cHOL4.arithmetic.- @ X1) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((X0 @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tnumpair.invtri0_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numpair.invtri0 @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.numpair.invtri0 @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tnumpair.invtri0_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.numpair.tri @ (cHOL4.pair.SND @ ((cHOL4.numpair.invtri0 @ X0) @ X1)))) @ (cHOL4.pair.FST @ ((cHOL4.numpair.invtri0 @ X0) @ X1)))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.numpair.tri @ X1)))))))) (Tnumpair.SND_invtri0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ (cHOL4.pair.FST @ ((cHOL4.numpair.invtri0 @ X0) @ X1))) @ (cHOL4.num.SUC @ (cHOL4.pair.SND @ ((cHOL4.numpair.invtri0 @ X0) @ X1))))))))) (Tnumpair.invtri_lower,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.numpair.tri @ (cHOL4.numpair.invtri @ X0))) @ X0)))) (Tnumpair.invtri_upper,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ X0) @ (cHOL4.numpair.tri @ ((cHOL4.arithmetic.+ @ (cHOL4.numpair.invtri @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tnumpair.invtri_linverse,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numpair.invtri @ (cHOL4.numpair.tri @ X0))) @ X0)))) (Tnumpair.invtri_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.numpair.tri @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.numpair.tri @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.numpair.invtri @ X1)) @ X0))))))) (Tnumpair.invtri_linverse_r,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.numpair.invtri @ ((cHOL4.arithmetic.+ @ (cHOL4.numpair.tri @ X1)) @ X0))) @ X1))))))) (Tnumpair.tri_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.numpair.tri @ X0))))) (Tnumpair.invtri_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.numpair.invtri @ X0)) @ X0)))) (Tnumpair.nfst_npair,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.numpair.nfst @ ((cHOL4.numpair.npair @ X1) @ X0))) @ X1)))))) (Tnumpair.nsnd_npair,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.numpair.nsnd @ ((cHOL4.numpair.npair @ X1) @ X0))) @ X0)))))) (Tnumpair.npair_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.numpair.npair @ X1) @ X2))))))))) (Tnumpair.npair,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numpair.npair @ (cHOL4.numpair.nfst @ X0)) @ (cHOL4.numpair.nsnd @ X0))) @ X0)))) (Tnumpair.npair_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.numpair.npair @ X3) @ X1)) @ ((cHOL4.numpair.npair @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X2)) @ ((cHOL4.min.= @ X1) @ X0)))))))))))) (Tnumpair.nfst_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.numpair.nfst @ X0)) @ X0)))) (Tnumpair.nsnd_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.numpair.nsnd @ X0)) @ X0)))) (Tnumpair.ncons_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.numpair.ncons @ X1) @ X0)) @ ((cHOL4.numpair.ncons @ X3) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.min.= @ X0) @ X2)))))))))))) (Tnumpair.ncons_not_nnil,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.numpair.ncons @ X1) @ X0)) @ cHOL4.num.0))))))) (Tnumpair.nlistrec_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numpair.nlistrec @ X1) @ X3) @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.numpair.nlistrec @ X1) @ X3) @ ((cHOL4.numpair.ncons @ X2) @ X0))) @ (((X3 @ X2) @ X0) @ (((cHOL4.numpair.nlistrec @ X1) @ X3) @ X0))))))))))))) (Tnumpair.nlist_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X0 @ ((cHOL4.numpair.ncons @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tnumpair.nlen_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numpair.nlen @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ (cHOL4.numpair.nlen @ ((cHOL4.numpair.ncons @ X1) @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.numpair.nlen @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tnumpair.nmap_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.numpair.nmap @ X2) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.numpair.nmap @ X2) @ ((cHOL4.numpair.ncons @ X1) @ X0))) @ ((cHOL4.numpair.ncons @ (X2 @ X1)) @ ((cHOL4.numpair.nmap @ X2) @ X0))))))))))) (Tnumpair.nfoldl_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.numpair.nfoldl @ X2) @ X3) @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.= @ (((cHOL4.numpair.nfoldl @ X2) @ X3) @ ((cHOL4.numpair.ncons @ X1) @ X0))) @ (((cHOL4.numpair.nfoldl @ X2) @ ((X2 @ X1) @ X3)) @ X0)))))))))))) (Tnumpair.napp_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.numpair.napp @ cHOL4.num.0) @ X1)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.numpair.napp @ ((cHOL4.numpair.ncons @ X2) @ X0)) @ X1)) @ ((cHOL4.numpair.ncons @ X2) @ ((cHOL4.numpair.napp @ X0) @ X1))))))))))) (Tnumpair.nlist_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.numpair.ncons @ X1) @ X2)))))))))) (Tnumposrep.l2n_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ cHOL4.list.NIL)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.MOD @ X1) @ X0)) @ ((cHOL4.arithmetic.* @ X0) @ ((cHOL4.numposrep.l2n @ X0) @ X2)))))))))))) (Tnumposrep.n2l_tupled_primitive_def,((cHOL4.min.= @ cHOL4.numposrep.n2l_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X1]: (^[X2]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.list.CONS @ ((cHOL4.arithmetic.MOD @ X2) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ ((cHOL4.arithmetic.MOD @ X2) @ X1)) @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ X1)))))))))))))) (Tnumposrep.n2l_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numposrep.n2l @ X0) @ X1)) @ (cHOL4.numposrep.n2l_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tnumposrep.num_from_bin_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_from_bin_list) @ (cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Tnumposrep.num_from_oct_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_from_oct_list) @ (cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tnumposrep.num_from_dec_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_from_dec_list) @ (cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tnumposrep.num_from_hex_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_from_hex_list) @ (cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tnumposrep.num_to_bin_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_to_bin_list) @ (cHOL4.numposrep.n2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Tnumposrep.num_to_oct_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_to_oct_list) @ (cHOL4.numposrep.n2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tnumposrep.num_to_dec_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_to_dec_list) @ (cHOL4.numposrep.n2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tnumposrep.num_to_hex_list_def,((cHOL4.min.= @ cHOL4.numposrep.num_to_hex_list) @ (cHOL4.numposrep.n2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tnumposrep.BOOLIFY_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numposrep.BOOLIFY @ cHOL4.num.0) @ X0) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.numposrep.BOOLIFY @ (cHOL4.num.SUC @ X2)) @ X0) @ X1)) @ (((cHOL4.numposrep.BOOLIFY @ X2) @ (cHOL4.arithmetic.DIV2 @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.ODD @ X0)) @ X1))))))))))) (Tnumposrep.l2n2,((cHOL4.min.= @ cHOL4.numposrep.l2n2) @ (cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Tnumposrep.n2l_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((X0 @ X1) @ ((cHOL4.arithmetic.DIV @ X2) @ X1)))) @ ((X0 @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tnumposrep.n2l_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numposrep.n2l @ X1) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.list.CONS @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ ((cHOL4.arithmetic.MOD @ X0) @ X1)) @ ((cHOL4.numposrep.n2l @ X1) @ ((cHOL4.arithmetic.DIV @ X0) @ X1)))))))))) (Tnumposrep.LENGTH_n2l,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.numposrep.n2l @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X0) @ X1)))))))))) (Tnumposrep.l2n_n2l,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ ((cHOL4.numposrep.n2l @ X0) @ X1))) @ X1))))))) (Tnumposrep.l2n_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ ((cHOL4.numposrep.l2n @ X1) @ X0)) @ ((cHOL4.arithmetic.EXP @ X1) @ (cHOL4.list.LENGTH @ X0))))))))) (Tnumposrep.LENGTH_l2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ X0)) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ X1)) @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X0) @ ((cHOL4.numposrep.l2n @ X0) @ X1)))) @ (cHOL4.list.LENGTH @ X1)))))))) (Tnumposrep.EL_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.list.TAKE @ X1) @ X2))) @ ((cHOL4.list.EL @ X0) @ X2)))))))))) (Tnumposrep.l2n_DIGIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.DIV @ ((cHOL4.numposrep.l2n @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ X0) @ X2))) @ X0)) @ ((cHOL4.list.EL @ X2) @ X1)))))))))) (Tnumposrep.DIV_0_IMP_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X1) @ X0)) @ cHOL4.num.0))) @ ((cHOL4.prim_rec.< @ X1) @ X0))))))) (Tnumposrep.EL_n2l,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.list.LENGTH @ ((cHOL4.numposrep.n2l @ X0) @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ ((cHOL4.numposrep.n2l @ X0) @ X2))) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.DIV @ X2) @ ((cHOL4.arithmetic.EXP @ X0) @ X1))) @ X0)))))))))) (Tnumposrep.n2l_l2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ X0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.numposrep.n2l @ X0) @ ((cHOL4.numposrep.l2n @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ cHOL4.num.0) @ cHOL4.list.NIL)) @ ((cHOL4.list.TAKE @ (cHOL4.num.SUC @ ((cHOL4.logroot.LOG @ X0) @ ((cHOL4.numposrep.l2n @ X0) @ X1)))) @ X1))))))))) (Tnumposrep.n2l_BOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ X0)) @ ((cHOL4.numposrep.n2l @ X0) @ X1)))))))) (Tnumposrep.l2n_pow2_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ cHOL4.list.NIL)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.bit.MOD_2EXP @ X0) @ X1)) @ ((cHOL4.bit.TIMES_2EXP @ X0) @ ((cHOL4.numposrep.l2n @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X2)))))))))))) (Tnumposrep.n2l_pow2_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.numposrep.n2l @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.numposrep.n2l @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ X2))))))) @ ((cHOL4.bit.DIVMOD_2EXP @ X0) @ X1))))))))) (Tnumposrep.l2n_2_thms,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numposrep.l2n2 @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numposrep.l2n2 @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numposrep.l2n2 @ cHOL4.list.NIL)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numposrep.l2n2 @ ((cHOL4.list.CONS @ cHOL4.num.0) @ X0))) @ (cHOL4.numeral.iDUB @ (cHOL4.numposrep.l2n2 @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.numposrep.l2n2 @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numposrep.l2n2 @ X0)))))))))) (Tnumposrep.BIT_num_from_bin_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ (cHOL4.numposrep.num_from_bin_list @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tnumposrep.EL_num_to_bin_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ (cHOL4.numposrep.num_to_bin_list @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ (cHOL4.numposrep.num_to_bin_list @ X1))) @ ((cHOL4.bit.BITV @ X1) @ X0)))))))) (Tnumposrep.num_bin_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.numposrep.num_from_bin_list) @ cHOL4.numposrep.num_to_bin_list)) @ cHOL4.combin.I)) (Tnumposrep.num_oct_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.numposrep.num_from_oct_list) @ cHOL4.numposrep.num_to_oct_list)) @ cHOL4.combin.I)) (Tnumposrep.num_dec_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.numposrep.num_from_dec_list) @ cHOL4.numposrep.num_to_dec_list)) @ cHOL4.combin.I)) (Tnumposrep.num_hex_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.numposrep.num_from_hex_list) @ cHOL4.numposrep.num_to_hex_list)) @ cHOL4.combin.I)) (TnumRing.num_interp_sp_def,((cHOL4.min.= @ cHOL4.numRing.num_interp_sp) @ (cHOL4.canonical.interp_sp @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_spolynom_simplify_def,((cHOL4.min.= @ cHOL4.numRing.num_spolynom_simplify) @ (cHOL4.canonical.spolynom_simplify @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_spolynom_normalize_def,((cHOL4.min.= @ cHOL4.numRing.num_spolynom_normalize) @ (cHOL4.canonical.spolynom_normalize @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_interp_cs_def,((cHOL4.min.= @ cHOL4.numRing.num_interp_cs) @ (cHOL4.canonical.interp_cs @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_ics_aux_def,((cHOL4.min.= @ cHOL4.numRing.num_ics_aux) @ (cHOL4.canonical.ics_aux @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_interp_m_def,((cHOL4.min.= @ cHOL4.numRing.num_interp_m) @ (cHOL4.canonical.interp_m @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_interp_vl_def,((cHOL4.min.= @ cHOL4.numRing.num_interp_vl) @ (cHOL4.canonical.interp_vl @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_ivl_aux_def,((cHOL4.min.= @ cHOL4.numRing.num_ivl_aux) @ (cHOL4.canonical.ivl_aux @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_canonical_sum_simplify_def,((cHOL4.min.= @ cHOL4.numRing.num_canonical_sum_simplify) @ (cHOL4.canonical.canonical_sum_simplify @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_canonical_sum_prod_def,((cHOL4.min.= @ cHOL4.numRing.num_canonical_sum_prod) @ (cHOL4.canonical.canonical_sum_prod @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_canonical_sum_scalar3_def,((cHOL4.min.= @ cHOL4.numRing.num_canonical_sum_scalar3) @ (cHOL4.canonical.canonical_sum_scalar3 @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_canonical_sum_scalar2_def,((cHOL4.min.= @ cHOL4.numRing.num_canonical_sum_scalar2) @ (cHOL4.canonical.canonical_sum_scalar2 @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_canonical_sum_scalar_def,((cHOL4.min.= @ cHOL4.numRing.num_canonical_sum_scalar) @ (cHOL4.canonical.canonical_sum_scalar @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_varlist_insert_def,((cHOL4.min.= @ cHOL4.numRing.num_varlist_insert) @ (cHOL4.canonical.varlist_insert @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_monom_insert_def,((cHOL4.min.= @ cHOL4.numRing.num_monom_insert) @ (cHOL4.canonical.monom_insert @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_canonical_sum_merge_def,((cHOL4.min.= @ cHOL4.numRing.num_canonical_sum_merge) @ (cHOL4.canonical.canonical_sum_merge @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*)))) (TnumRing.num_semi_ring,(cHOL4.semi_ring.is_semi_ring @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*))) (TnumRing.num_ring_thms,((cHOL4.bool./\ @ (cHOL4.semi_ring.is_semi_ring @ ((((cHOL4.semi_ring.semi_ring @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.arithmetic.+) @ cHOL4.arithmetic.*))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_sp @ X0) @ X1)) @ ((cHOL4.numRing.num_interp_cs @ X0) @ (cHOL4.numRing.num_spolynom_simplify @ X1)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_sp @ X0) @ (cHOL4.canonical.SPconst @ X2))) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_sp @ X0) @ (cHOL4.canonical.SPvar @ X3))) @ ((cHOL4.quote.varmap_find @ X3) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_sp @ X0) @ ((cHOL4.canonical.SPplus @ X4) @ X5))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.numRing.num_interp_sp @ X0) @ X4)) @ ((cHOL4.numRing.num_interp_sp @ X0) @ X5)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_sp @ X0) @ ((cHOL4.canonical.SPmult @ X4) @ X5))) @ ((cHOL4.arithmetic.* @ ((cHOL4.numRing.num_interp_sp @ X0) @ X4)) @ ((cHOL4.numRing.num_interp_sp @ X0) @ X5))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ cHOL4.quote.End_idx) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ X6)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Right_idx @ X9)) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ ((cHOL4.quote.varmap_find @ X9) @ X7))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Left_idx @ X9)) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ ((cHOL4.quote.varmap_find @ X9) @ X8))))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ X3) @ cHOL4.quote.Empty_vm)) @ (cHOL4.min.|at| @ (^[X6]: cHOL4.bool.T)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ X15) @ X14)) @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ X10))) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.numRing.num_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X10))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ X15) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ X10))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.numRing.num_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X14)) @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ X10))) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.numRing.num_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X13) @ ((cHOL4.numRing.num_canonical_sum_merge @ X11) @ X10))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.numRing.num_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X10))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X16]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ X16) @ cHOL4.canonical.Nil_monom)) @ X16)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X17]: (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X19) @ X18) @ X17))) @ (((cHOL4.canonical.Cons_monom @ X19) @ X18) @ X17))))))))) @ (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_merge @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X21) @ X20))) @ ((cHOL4.canonical.Cons_varlist @ X21) @ X20))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.numRing.num_monom_insert @ X15) @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ X15) @ X14)) @ X13) @ X10)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ (((cHOL4.numRing.num_monom_insert @ X15) @ X13) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.numRing.num_monom_insert @ X15) @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ X15) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X13) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ (((cHOL4.numRing.num_monom_insert @ X15) @ X13) @ X10))))))))))))) @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.numRing.num_monom_insert @ X15) @ X13) @ cHOL4.canonical.Nil_monom)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ cHOL4.canonical.Nil_monom))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.numRing.num_varlist_insert @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X14)) @ X13) @ X10)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.numRing.num_varlist_insert @ X13) @ X10))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.numRing.num_varlist_insert @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X13) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.numRing.num_varlist_insert @ X13) @ X10))))))))))) @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.numRing.num_varlist_insert @ X13) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_scalar @ X22) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.arithmetic.* @ X22) @ X2)) @ X23) @ ((cHOL4.numRing.num_canonical_sum_scalar @ X22) @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_scalar @ X22) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.canonical.Cons_monom @ X22) @ X23) @ ((cHOL4.numRing.num_canonical_sum_scalar @ X22) @ X24)))))))))) @ (cHOL4.bool.! @ (^[X22]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_scalar @ X22) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_scalar2 @ X25) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.numRing.num_monom_insert @ X2) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ ((cHOL4.numRing.num_canonical_sum_scalar2 @ X25) @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_scalar2 @ X25) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.numRing.num_varlist_insert @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ ((cHOL4.numRing.num_canonical_sum_scalar2 @ X25) @ X24)))))))))) @ (cHOL4.bool.! @ (^[X25]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_scalar2 @ X25) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.numRing.num_canonical_sum_scalar3 @ X22) @ X25) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.numRing.num_monom_insert @ ((cHOL4.arithmetic.* @ X22) @ X2)) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ (((cHOL4.numRing.num_canonical_sum_scalar3 @ X22) @ X25) @ X24)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.numRing.num_canonical_sum_scalar3 @ X22) @ X25) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.numRing.num_monom_insert @ X22) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ (((cHOL4.numRing.num_canonical_sum_scalar3 @ X22) @ X25) @ X24)))))))))))) @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: ((cHOL4.min.= @ (((cHOL4.numRing.num_canonical_sum_scalar3 @ X22) @ X25) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_prod @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X26)) @ ((cHOL4.numRing.num_canonical_sum_merge @ (((cHOL4.numRing.num_canonical_sum_scalar3 @ X15) @ X13) @ X26)) @ ((cHOL4.numRing.num_canonical_sum_prod @ X11) @ X26)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_prod @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X26)) @ ((cHOL4.numRing.num_canonical_sum_merge @ ((cHOL4.numRing.num_canonical_sum_scalar2 @ X13) @ X26)) @ ((cHOL4.numRing.num_canonical_sum_prod @ X11) @ X26)))))))))) @ (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.numRing.num_canonical_sum_prod @ cHOL4.canonical.Nil_monom) @ X26)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (cHOL4.numRing.num_canonical_sum_simplify @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.numRing.num_canonical_sum_simplify @ X24)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.canonical.Cons_varlist @ X23) @ (cHOL4.numRing.num_canonical_sum_simplify @ X24))) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ (cHOL4.numRing.num_canonical_sum_simplify @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (cHOL4.numRing.num_canonical_sum_simplify @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.canonical.Cons_varlist @ X23) @ (cHOL4.numRing.num_canonical_sum_simplify @ X24)))))))) @ ((cHOL4.min.= @ (cHOL4.numRing.num_canonical_sum_simplify @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: ((cHOL4.min.= @ (((cHOL4.numRing.num_ivl_aux @ X0) @ X27) @ cHOL4.list.NIL)) @ ((cHOL4.quote.varmap_find @ X27) @ X0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X28]: (cHOL4.bool.! @ (^[X29]: ((cHOL4.min.= @ (((cHOL4.numRing.num_ivl_aux @ X0) @ X27) @ ((cHOL4.list.CONS @ X28) @ X29))) @ ((cHOL4.arithmetic.* @ ((cHOL4.quote.varmap_find @ X27) @ X0)) @ (((cHOL4.numRing.num_ivl_aux @ X0) @ X28) @ X29))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_vl @ X0) @ cHOL4.list.NIL)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X30]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_vl @ X0) @ ((cHOL4.list.CONS @ X27) @ X30))) @ (((cHOL4.numRing.num_ivl_aux @ X0) @ X27) @ X30)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.numRing.num_interp_m @ X0) @ X2) @ cHOL4.list.NIL)) @ X2)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X30]: ((cHOL4.min.= @ (((cHOL4.numRing.num_interp_m @ X0) @ X2) @ ((cHOL4.list.CONS @ X27) @ X30))) @ ((cHOL4.arithmetic.* @ X2) @ (((cHOL4.numRing.num_ivl_aux @ X0) @ X27) @ X30))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: ((cHOL4.min.= @ (((cHOL4.numRing.num_ics_aux @ X0) @ X31) @ cHOL4.canonical.Nil_monom)) @ X31)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.numRing.num_ics_aux @ X0) @ X31) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.arithmetic.+ @ X31) @ (((cHOL4.numRing.num_ics_aux @ X0) @ ((cHOL4.numRing.num_interp_vl @ X0) @ X23)) @ X24)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.numRing.num_ics_aux @ X0) @ X31) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ ((cHOL4.arithmetic.+ @ X31) @ (((cHOL4.numRing.num_ics_aux @ X0) @ (((cHOL4.numRing.num_interp_m @ X0) @ X2) @ X23)) @ X24)))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_cs @ X0) @ cHOL4.canonical.Nil_monom)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_cs @ X0) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.numRing.num_ics_aux @ X0) @ ((cHOL4.numRing.num_interp_vl @ X0) @ X23)) @ X24))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.numRing.num_interp_cs @ X0) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.numRing.num_ics_aux @ X0) @ (((cHOL4.numRing.num_interp_m @ X0) @ X2) @ X23)) @ X24))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.numRing.num_spolynom_normalize @ (cHOL4.canonical.SPvar @ X3))) @ ((cHOL4.canonical.Cons_varlist @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL)) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.numRing.num_spolynom_normalize @ (cHOL4.canonical.SPconst @ X2))) @ (((cHOL4.canonical.Cons_monom @ X2) @ cHOL4.list.NIL) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X32]: (cHOL4.bool.! @ (^[X33]: ((cHOL4.min.= @ (cHOL4.numRing.num_spolynom_normalize @ ((cHOL4.canonical.SPplus @ X32) @ X33))) @ ((cHOL4.numRing.num_canonical_sum_merge @ (cHOL4.numRing.num_spolynom_normalize @ X32)) @ (cHOL4.numRing.num_spolynom_normalize @ X33)))))))) @ (cHOL4.bool.! @ (^[X32]: (cHOL4.bool.! @ (^[X33]: ((cHOL4.min.= @ (cHOL4.numRing.num_spolynom_normalize @ ((cHOL4.canonical.SPmult @ X32) @ X33))) @ ((cHOL4.numRing.num_canonical_sum_prod @ (cHOL4.numRing.num_spolynom_normalize @ X32)) @ (cHOL4.numRing.num_spolynom_normalize @ X33))))))))))) @ (cHOL4.bool.! @ (^[X34]: ((cHOL4.min.= @ (cHOL4.numRing.num_spolynom_simplify @ X34)) @ (cHOL4.numRing.num_canonical_sum_simplify @ (cHOL4.numRing.num_spolynom_normalize @ X34))))))))))))))))))))))) (TnumRing.num_rewrites,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X0) @ X2))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.* @ X0) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ cHOL4.num.0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.- @ X0) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ X0) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ (cHOL4.arithmetic.NUMERAL @ ((cHOL4.arithmetic.EXP @ X0) @ X2)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.num.SUC @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.prim_rec.PRE @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((cHOL4.min.= @ X0) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ cHOL4.num.0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ X0))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((cHOL4.prim_rec.< @ X0) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ cHOL4.num.0) @ X0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((cHOL4.prim_rec.< @ X2) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ cHOL4.num.0) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ cHOL4.num.0)) @ ((cHOL4.arithmetic.<= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((cHOL4.arithmetic.<= @ X0) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ X0) @ cHOL4.num.0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.arithmetic.NUMERAL @ X0)) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((cHOL4.arithmetic.<= @ X2) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.ODD @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.arithmetic.EVEN @ (cHOL4.arithmetic.NUMERAL @ X0))) @ (cHOL4.arithmetic.EVEN @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ cHOL4.num.0))) @ (cHOL4.arithmetic.EVEN @ cHOL4.num.0))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT2 @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2))) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2))) @ ((cHOL4.min.= @ X0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2))) @ ((cHOL4.min.= @ X0) @ X2)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT2 @ X0))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ X0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ cHOL4.num.0)) @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0))) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ cHOL4.num.0) @ X0))) @ (cHOL4.numeral.iiSUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ cHOL4.num.0))) @ (cHOL4.numeral.iiSUC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.arithmetic.BIT1 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X2))))) @ ((cHOL4.min.= @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.numeral.iiSUC @ ((cHOL4.arithmetic.+ @ X0) @ X2)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ X0) @ cHOL4.num.0)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT1 @ X0)) @ X2)) @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ (cHOL4.numeral.iDUB @ ((cHOL4.arithmetic.* @ X0) @ X2))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.BIT2 @ X0)) @ X2)) @ (cHOL4.numeral.iDUB @ (cHOL4.numeral.iZ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ X0) @ X2)) @ X2)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.numeral.iDUB @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ (cHOL4.arithmetic.BIT2 @ X0))) @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ X0)))) @ ((cHOL4.min.= @ (cHOL4.numeral.iDUB @ cHOL4.num.0)) @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X1)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ cHOL4.num.0)) @ cHOL4.bool.T)))))))))))))) (Tnum.SUC_REP_DEF,((cHOL4.bool./\ @ (cHOL4.bool.ONE_ONE @ cHOL4.num.SUC_REP)) @ (cHOL4.bool.~ @ (cHOL4.bool.ONTO @ cHOL4.num.SUC_REP)))) (Tnum.ZERO_REP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.num.ZERO_REP) @ (cHOL4.num.SUC_REP @ X0)))))) (Tnum.IS_NUM_REP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.IS_NUM_REP @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ cHOL4.num.ZERO_REP)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X1 @ (cHOL4.num.SUC_REP @ X2))))))) @ (X1 @ X0)))))))) (Tnum.num_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.num.IS_NUM_REP) @ X0)))) (Tnum.num_ISO_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.ABS_num @ (cHOL4.num.REP_num @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.num.IS_NUM_REP @ X1)) @ ((cHOL4.min.= @ (cHOL4.num.REP_num @ (cHOL4.num.ABS_num @ X1))) @ X1)))))) (Tnum.ZERO_DEF,((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.num.ABS_num @ cHOL4.num.ZERO_REP))) (Tnum.SUC_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.ABS_num @ (cHOL4.num.SUC_REP @ (cHOL4.num.REP_num @ X0))))))) (Tnum.NOT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ cHOL4.num.0))))) (Tnum.INV_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tnum.INDUCTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (TOmega_Automata.DET_OMEGA_EXISTS_FORALL_THEOREM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X5 @ X0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X2 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))) @ (X4 @ ((cHOL4.pair.|comma| @ X1) @ (^[X6]: (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X5 @ X0)) @ X3)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X2 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))))) @ (X4 @ ((cHOL4.pair.|comma| @ X1) @ (^[X6]: (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))))))))))))))) (TOmega_Automata.NEG_DET_AUTOMATA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X5 @ X0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X2 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))) @ (X4 @ ((cHOL4.pair.|comma| @ X1) @ (^[X6]: (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X5 @ X0)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X2 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))) @ (cHOL4.bool.~ @ (X4 @ ((cHOL4.pair.|comma| @ X1) @ (^[X6]: (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))))))))))))))))) (TOmega_Automata.OMEGA_CONJ_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (X7 @ (X8 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (X5 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X8 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))) @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ X8))))))) @ (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ (X6 @ (X10 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X10 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))) @ (X2 @ ((cHOL4.pair.|comma| @ X1) @ X10)))))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X7 @ (X8 @ X0))) @ (X6 @ (X10 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X8 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))) @ (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X10 @ ((cHOL4.arithmetic.+ @ X9) @ X0)))))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ X8))) @ (X2 @ ((cHOL4.pair.|comma| @ X1) @ X10))))))))))))))))))))))))))) (TOmega_Automata.OMEGA_DISJ_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (X7 @ (X8 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (X5 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X8 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))) @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ X8))))))) @ (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ (X6 @ (X10 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X10 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))) @ (X2 @ ((cHOL4.pair.|comma| @ X1) @ X10)))))))) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ X0))) @ (X7 @ (X8 @ X0)))) @ ((cHOL4.bool./\ @ (X11 @ X0)) @ (X6 @ (X10 @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ X0)))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X8 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))) @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ ((cHOL4.bool./\ @ (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X10 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))) @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ X0))) @ (X3 @ ((cHOL4.pair.|comma| @ X1) @ X8)))) @ ((cHOL4.bool./\ @ (X11 @ X0)) @ (X2 @ ((cHOL4.pair.|comma| @ X1) @ X10)))))))))))))))))))))))))))))) (TOmega_Automata.BOOLEAN_CLOSURE_G,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))) @ (cHOL4.bool.! @ (^[X3]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))) @ (cHOL4.bool.! @ (^[X3]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X4 @ X0))) @ (cHOL4.bool.~ @ (X5 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ (X4 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X4 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ (cHOL4.bool.~ @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))))))))))))))))) (TOmega_Automata.BOOLEAN_CLOSURE_F,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X4 @ X0))) @ (cHOL4.bool.~ @ (X5 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ (X4 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))) @ ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X4 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))))))))))))))))) (TOmega_Automata.BOOLEAN_CLOSURE_FG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))) @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X5 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))))))))) (TOmega_Automata.BOOLEAN_CLOSURE_GF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))) @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X5 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.bool.COND @ (X5 @ ((cHOL4.arithmetic.+ @ X6) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X6) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (X5 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))))))))) (TOmega_Automata.BOREL_HIERARCHY_G,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X2) @ X0)))))))) @ (cHOL4.bool.? @ (^[X2]: (X3 @ ((cHOL4.arithmetic.+ @ X2) @ X0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X2) @ X0)))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ X5) @ X0))))))))))))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X2) @ X0)))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ X5) @ X0))))))))))))))))))) (TOmega_Automata.BOREL_HIERARCHY_F,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X2) @ X0)))) @ ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ X5) @ X0))))))))))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X2) @ X0)))) @ ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))))))))))))))) (TOmega_Automata.BOREL_HIERARCHY_FG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X4 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (X4 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (X4 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))))) @ (cHOL4.bool.? @ (^[X5]: (X4 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X6 @ X0))) @ (cHOL4.bool.~ @ (X4 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (X6 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X5) @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X5) @ X0)))) @ ((cHOL4.bool.\/ @ (X6 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (cHOL4.bool.~ @ (X4 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))) @ ((cHOL4.min.= @ (X4 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X5) @ X0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X6 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X4 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))) @ ((cHOL4.bool./\ @ (X6 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (X4 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X6 @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ (cHOL4.bool.~ @ (X4 @ ((cHOL4.arithmetic.+ @ X2) @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))))))))))))))))) (TOmega_Automata.TEMP_OPS_DEFS_TO_OMEGA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3)))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.ALWAYS @ X2))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.EVENTUAL @ X2))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ (((cHOL4.bool.COND @ (X1 @ X3)) @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ ((cHOL4.bool.\/ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ X1))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ (((cHOL4.bool.COND @ (X1 @ X3)) @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool.\/ @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1))) @ ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))) @ ((cHOL4.bool.\/ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ X3)))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ X3)))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ X3))))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ (X0 @ X3))))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ X3))))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ X3))))))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ (X0 @ X3))))))) @ cHOL4.bool.T)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ X3))))))) @ cHOL4.bool.T)))))))))))))))))))))))))))) (TOmega_Automata.AUTOMATON_TEMP_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ (X6 @ X9)) @ ((cHOL4.bool./\ @ (X4 @ X9)) @ (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ (X5 @ X10)) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.pair.|comma| @ X10) @ X9))) @ (X7 @ ((cHOL4.pair.|comma| @ X9) @ X10))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X6 @ X9)) @ (X5 @ X10))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X4 @ X9)) @ (X3 @ ((cHOL4.pair.|comma| @ X10) @ X9)))) @ (X7 @ ((cHOL4.pair.|comma| @ X9) @ X10)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Temporal_Logic.NEXT @ X0))) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X11 @ X13)) @ (X0 @ X13))) @ ((cHOL4.min.= @ (X12 @ X13)) @ (X11 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (X8 @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (X14 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ X13))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X0))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X14 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ X13))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X2)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (X14 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (X2 @ X13)) @ (X14 @ X13)))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PSNEXT @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X2)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X14 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ (X2 @ X13)) @ (X14 @ X13)))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X14 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ (X1 @ X13)) @ ((cHOL4.bool./\ @ (X2 @ X13)) @ (X14 @ X13))))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X14 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X13)) @ (X1 @ X13))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X13))) @ (X14 @ X13))))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X14 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X13))) @ ((cHOL4.bool.\/ @ (X2 @ X13)) @ (X14 @ X13))))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (X14 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ (X1 @ X13)) @ ((cHOL4.bool./\ @ (X2 @ X13)) @ (X14 @ X13))))))) @ (X8 @ X14))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (X14 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X13)) @ (X1 @ X13))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X13))) @ (X14 @ X13))))))) @ (X8 @ X14))))))) @ ((cHOL4.min.= @ (X8 @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ (X14 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ (X14 @ ((cHOL4.arithmetic.+ @ X13) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X13))) @ ((cHOL4.bool.\/ @ (X2 @ X13)) @ (X14 @ X13))))))) @ (X8 @ X14)))))))))))))))))))))))))))))))))))) (TOmega_Automata.BUECHI_TRANSLATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ (cHOL4.Temporal_Logic.NEXT @ X0))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X4 @ X6)) @ (X0 @ X6))) @ ((cHOL4.min.= @ (X5 @ X6)) @ (X4 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (X3 @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ (cHOL4.Temporal_Logic.ALWAYS @ X2))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))))))) @ (X3 @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ (cHOL4.Temporal_Logic.EVENTUAL @ X2))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ ((cHOL4.bool.\/ @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))))))) @ (X3 @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ ((cHOL4.bool.\/ @ (X1 @ X6)) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X9))))))))) @ (X3 @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ ((cHOL4.bool.\/ @ (X1 @ X6)) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))) @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X9))))))))) @ (X3 @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ (((cHOL4.bool.COND @ (X1 @ X6)) @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))))))) @ (X3 @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ (((cHOL4.bool.COND @ (X1 @ X6)) @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool.\/ @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))))))) @ (X3 @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ ((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X6))) @ ((cHOL4.bool.\/ @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ ((cHOL4.bool.\/ @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X9))))))))) @ (X3 @ X7)))))))) @ ((cHOL4.min.= @ (X3 @ ((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ cHOL4.bool.T) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X7 @ X6)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X6))) @ ((cHOL4.bool.\/ @ (X2 @ X6)) @ (X7 @ ((cHOL4.arithmetic.+ @ X6) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X9)))) @ ((cHOL4.bool.\/ @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X9))) @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X9))))))))) @ (X3 @ X7)))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_CONJ_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ (X7 @ (X8 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (X5 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X8 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (X3 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X8 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))))))))))))) @ (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ (X6 @ (X12 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X12 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (X2 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X12 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0))))))))))))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X7 @ (X8 @ X0))) @ (X6 @ (X12 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X9]: ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X8 @ ((cHOL4.arithmetic.+ @ X9) @ X0))))) @ (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X9) @ X0))) @ (X12 @ ((cHOL4.arithmetic.+ @ X9) @ X0)))))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.bool./\ @ (X3 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X8 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))))) @ (X2 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X12 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_DISJ_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ (X8 @ (X9 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X6 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ (X9 @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X9 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))))))))))))) @ (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ (X7 @ (X12 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ (X12 @ ((cHOL4.arithmetic.+ @ X1) @ X0))))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (X3 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X12 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0))))))))))))))) @ (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X13 @ X0))) @ (X8 @ (X9 @ X0)))) @ ((cHOL4.bool./\ @ (X13 @ X0)) @ (X7 @ (X12 @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X13 @ ((cHOL4.arithmetic.+ @ X1) @ X0)))) @ ((cHOL4.bool./\ @ (X6 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ (X9 @ ((cHOL4.arithmetic.+ @ X1) @ X0))))) @ (cHOL4.bool.~ @ (X13 @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool./\ @ (X13 @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ (X12 @ ((cHOL4.arithmetic.+ @ X1) @ X0))))) @ (X13 @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X13 @ ((cHOL4.arithmetic.+ @ X1) @ X0)))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X9 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0))))))) @ ((cHOL4.bool./\ @ (X13 @ ((cHOL4.arithmetic.+ @ X1) @ X0))) @ (X3 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0)))) @ (X12 @ ((cHOL4.arithmetic.+ @ X10) @ ((cHOL4.arithmetic.+ @ X11) @ X0))))))))))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_NEXT_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.NEXT @ (^[X0]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ (X6 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X7) @ X0))) @ (X6 @ ((cHOL4.arithmetic.+ @ X7) @ X0))))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (X3 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X9) @ X0)))) @ (X6 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))))))))))) @ X0)) @ (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X10 @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (X6 @ X0)) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X10 @ ((cHOL4.arithmetic.+ @ X7) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X6 @ ((cHOL4.arithmetic.+ @ X7) @ X0))) @ X2)) @ ((cHOL4.bool./\ @ (X10 @ ((cHOL4.arithmetic.+ @ X7) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X5 @ (X6 @ ((cHOL4.arithmetic.+ @ X7) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ (X10 @ ((cHOL4.arithmetic.+ @ X7) @ X0))) @ ((cHOL4.bool./\ @ (X4 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X7) @ X0))) @ (X6 @ ((cHOL4.arithmetic.+ @ X7) @ X0))))) @ (X10 @ ((cHOL4.arithmetic.+ @ X7) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (X3 @ ((cHOL4.pair.|comma| @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X9) @ X0)))) @ (X6 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X9) @ X0))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_SUNTIL_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ (^[X0]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X6 @ (X7 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))))))))))))) @ X0)) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (((cHOL4.bool.COND @ (X11 @ X0)) @ (X6 @ (X7 @ X0))) @ ((cHOL4.min.= @ (X7 @ X0)) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_UNTIL_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X1) @ (^[X0]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X6 @ (X7 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))))))))))))) @ X0)) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (((cHOL4.bool.COND @ (X11 @ X0)) @ (X6 @ (X7 @ X0))) @ ((cHOL4.min.= @ (X7 @ X0)) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_SBEFORE_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X0]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X6 @ (X7 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))))))))))))) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ ((cHOL4.min.= @ (X7 @ X0)) @ X3)))) @ ((cHOL4.bool./\ @ (X11 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ (X6 @ (X7 @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_BEFORE_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X0]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X6 @ (X7 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))))))))))))) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ ((cHOL4.min.= @ (X7 @ X0)) @ X3)))) @ ((cHOL4.bool./\ @ (X11 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ (X6 @ (X7 @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_SWHEN_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X0]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X6 @ (X7 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))))))))))))) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ ((cHOL4.min.= @ (X7 @ X0)) @ X3)))) @ ((cHOL4.bool./\ @ (X11 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ (X6 @ (X7 @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))))))))))))))))))))))))))))))))) (TOmega_Automata.CO_BUECHI_WHEN_CLOSURE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ (^[X0]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X6 @ (X7 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))))))))))))) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ ((cHOL4.min.= @ (X7 @ X0)) @ X3)))) @ ((cHOL4.bool./\ @ (X11 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ X0))) @ (X6 @ (X7 @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X6 @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0)))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ ((cHOL4.bool./\ @ (X5 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X8) @ X0))) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ X0))))) @ ((cHOL4.bool./\ @ (X11 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X11 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0))))) @ (X4 @ ((cHOL4.pair.|comma| @ (X2 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))) @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ ((cHOL4.arithmetic.+ @ X10) @ X0)))))))))))))))))))))))))))))))))) (TOmega_Automata.NEXT_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X2 @ X0))) @ (cHOL4.bool.~ @ (X3 @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))))))))))))))) (TOmega_Automata.SUNTIL_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))))))))))))))) (TOmega_Automata.UNTIL_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))) @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))))))))))))))) (TOmega_Automata.SBEFORE_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))))))))))))))) (TOmega_Automata.BEFORE_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))) @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))))))))))))))) (TOmega_Automata.SWHEN_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))))))))))))))))) (TOmega_Automata.WHEN_AS_CO_BUECHI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))) @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0))))) @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.+ @ X6) @ X0)))))))))))))))))))) (TOmega_Automata.BUECHI_PERIODIC_MODEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X5)) @ ((cHOL4.min.= @ (X3 @ X4)) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X1 @ (X7 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X0 @ ((cHOL4.pair.|comma| @ (X6 @ X8)) @ ((cHOL4.pair.|comma| @ (X7 @ X8)) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (X2 @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ X10)))))))))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X11 @ ((cHOL4.arithmetic.+ @ X4) @ X10))) @ (X11 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.MOD @ X10) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ X10))) @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.MOD @ X10) @ X5))))))) @ ((cHOL4.bool./\ @ (X1 @ (X12 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X0 @ ((cHOL4.pair.|comma| @ (X11 @ X8)) @ ((cHOL4.pair.|comma| @ (X12 @ X8)) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (X2 @ (X12 @ ((cHOL4.arithmetic.+ @ X9) @ X10))))))))))))))))))))))))))))) (TOmega_Automata.BUECHI_PERIODIC_REDUCTION_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X5)) @ ((cHOL4.min.= @ (X3 @ X4)) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X1 @ (X7 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X0 @ ((cHOL4.pair.|comma| @ (X6 @ X8)) @ ((cHOL4.pair.|comma| @ (X7 @ X8)) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (X2 @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ X10)))))))))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X11 @ ((cHOL4.arithmetic.+ @ X4) @ X10))) @ (X11 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.MOD @ X10) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ X10))) @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ ((cHOL4.arithmetic.MOD @ X10) @ X5))))))) @ ((cHOL4.bool./\ @ (X1 @ (X12 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X8) @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X0 @ ((cHOL4.pair.|comma| @ (X11 @ X8)) @ ((cHOL4.pair.|comma| @ (X12 @ X8)) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X8) @ X5)) @ (X2 @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ X8)))))))))))))))))))))))))))) (TOmega_Automata.BUECHI_PROP_REDUCTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X5)) @ ((cHOL4.min.= @ (X3 @ X4)) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X5))))))))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ (X1 @ (X7 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (X0 @ ((cHOL4.pair.|comma| @ (X6 @ X8)) @ ((cHOL4.pair.|comma| @ (X7 @ X8)) @ (X7 @ ((cHOL4.arithmetic.+ @ X8) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (X2 @ (X7 @ ((cHOL4.arithmetic.+ @ X9) @ X10)))))))))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X5)) @ ((cHOL4.bool./\ @ (X1 @ (X12 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X8) @ ((cHOL4.arithmetic.+ @ X4) @ X5))) @ (X0 @ ((cHOL4.pair.|comma| @ (X11 @ X8)) @ ((cHOL4.pair.|comma| @ (X12 @ X8)) @ (X12 @ ((cHOL4.arithmetic.+ @ X8) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X8) @ X5)) @ (X2 @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ X8))))))) @ ((cHOL4.min.= @ (X12 @ X4)) @ (X12 @ ((cHOL4.arithmetic.+ @ X4) @ X5)))))))))))))))))))))))) (TOmega_Automata.EQUALITY_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X2 @ X0)) @ (X2 @ X1)))))))))) (TOmega_Automata.LESS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X2 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X2 @ X1))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ (cHOL4.num.SUC @ X3))) @ (X2 @ X3)))))))))))))) (TOmega_Automata.FORALL_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (X0 @ ((cHOL4.arithmetic.+ @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ (X0 @ X2)))))))))) (TOmega_Automata.EXISTS_FORALL_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.arithmetic.+ @ X1) @ X2))))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ (X0 @ X2)))))))))) (TOmega_Automata.ELGOT_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X2) @ X1)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X3 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((X0 @ X2) @ X1))))))) @ (cHOL4.bool.? @ (^[X4]: (X3 @ X4)))))))))) (TOmega_Automata.ELGOT1_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X2) @ X1)))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (X3 @ X1)) @ ((X0 @ X2) @ X1))) @ (X3 @ X4)))))))))))))) (TOmega_Automata.ELGOT2_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((X0 @ X2) @ X1)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X3 @ X4)) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X1)) @ (X3 @ X1))))))))))))))) (TOmega.MAP2_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.MAP2_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ X2)))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X2)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X6) @ cHOL4.list.NIL)))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X5) @ X6)) @ cHOL4.list.NIL))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X6) @ X2)))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X5) @ X6)) @ ((cHOL4.list.CONS @ X1) @ X2))))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X4]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X3]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X11]: (^[X12]: (((cHOL4.list.list_CASE @ X11) @ (((cHOL4.list.list_CASE @ X12) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X1]: (^[X2]: (cHOL4.combin.I @ ((cHOL4.list.CONS @ ((X3 @ X4) @ X1)) @ (X7 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ X2)))))))))) @ (^[X5]: (^[X6]: (((cHOL4.list.list_CASE @ X12) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ ((X3 @ X5) @ X4)) @ (X7 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X6) @ cHOL4.list.NIL))))))) @ (^[X13]: (^[X14]: (cHOL4.combin.I @ ((cHOL4.list.CONS @ ((X3 @ X5) @ X13)) @ (X7 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X6) @ X14)))))))))))))))))))))))))) (TOmega.MAP2_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.Omega.MAP2_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (TOmega.sumc_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.sumc_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X2) @ X4)) @ ((cHOL4.list.CONS @ X1) @ X3))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (^[X1]: (^[X3]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ (^[X2]: (^[X4]: (cHOL4.combin.I @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ X1)) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))) (TOmega.sumc_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ X0) @ X1)) @ (cHOL4.Omega.sumc_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.modhat_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.modhat @ X0) @ X1)) @ ((cHOL4.integer.int_sub @ X0) @ ((cHOL4.integer.int_mul @ X1) @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)))))))))) (TOmega.evalupper_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.evalupper_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X4]: (^[X7]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X8]: (^[X3]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4)) @ X1)) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))) (TOmega.evalupper_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ (cHOL4.Omega.evalupper_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.evallower_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.evallower_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X4]: (^[X7]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X8]: (^[X3]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4))) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))) (TOmega.evallower_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.evallower @ X0) @ X1)) @ (cHOL4.Omega.evallower_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.fst_nzero_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Omega.fst_nzero @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.pair.FST @ X0)))))) (TOmega.fst1_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Omega.fst1 @ X0)) @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (TOmega.rshadow_row_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.rshadow_row_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X8]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X10]: (^[X3]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X2]: (^[X1]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X5]: (^[X4]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4))) @ (X6 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X3))))))))))))))))))))) (TOmega.rshadow_row_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.rshadow_row @ X0) @ X1)) @ (cHOL4.Omega.rshadow_row_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.real_shadow_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.real_shadow @ cHOL4.list.NIL) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.real_shadow @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.rshadow_row @ X1) @ X0)) @ ((cHOL4.Omega.real_shadow @ X2) @ X0))))))))))) (TOmega.dark_shadow_cond_row_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.dark_shadow_cond_row_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X8]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X10]: (^[X3]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X2]: (^[X1]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X5]: (^[X4]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ (cHOL4.integer.int_of_num @ X2))) @ X11)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4)) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ (cHOL4.integer.int_of_num @ X2))) @ ((cHOL4.integer.int_add @ X11) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ (X6 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X5) @ X4)) @ X3))))))))))))))))))))) (TOmega.dark_shadow_cond_row_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow_cond_row @ X0) @ X1)) @ (cHOL4.Omega.dark_shadow_cond_row_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.dark_shadow_condition_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.dark_shadow_condition_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X4)) @ X3)))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X3]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X8]: (^[X4]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.Omega.dark_shadow_cond_row @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3)) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))) (TOmega.dark_shadow_condition_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow_condition @ X0) @ X1)) @ (cHOL4.Omega.dark_shadow_condition_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.dark_shadow_row_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.dark_shadow_row_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3)))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X4]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X10]: (^[X3]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X1))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X5)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))))))) (TOmega.dark_shadow_row_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Omega.dark_shadow_row @ X0) @ X1) @ X2)) @ (cHOL4.Omega.dark_shadow_row_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (TOmega.dark_shadow_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.dark_shadow_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X4)) @ X3)))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X3]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X8]: (^[X4]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ (((cHOL4.Omega.dark_shadow_row @ X2) @ X1) @ X3)) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))) (TOmega.dark_shadow_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow @ X0) @ X1)) @ (cHOL4.Omega.dark_shadow_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (TOmega.nightmare_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.nightmare_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3)))))))))))))))))))))))) @ (^[X8]: (^[X9]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X7]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X6]: (^[X11]: ((cHOL4.pair.pair_CASE @ X11) @ (^[X5]: (^[X12]: ((cHOL4.pair.pair_CASE @ X12) @ (^[X4]: (^[X13]: (((cHOL4.list.list_CASE @ X13) @ (cHOL4.combin.I @ cHOL4.bool.F)) @ (^[X14]: (^[X3]: ((cHOL4.pair.pair_CASE @ X14) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X15)) @ ((cHOL4.integer.int_le @ X15) @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X6)) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X6))) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X6))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X7)) @ ((cHOL4.integer.int_add @ X1) @ X15))) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X7) @ X5)) @ ((cHOL4.Omega.evallower @ X7) @ X4))))))) @ (X8 @ ((cHOL4.pair.|comma| @ X7) @ ((cHOL4.pair.|comma| @ X6) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))))))))))))))) (TOmega.nightmare_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.Omega.nightmare @ X0) @ X1) @ X2) @ X3) @ X4)) @ (cHOL4.Omega.nightmare_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4))))))))))))))))) (TOmega.calc_nightmare_tupled_primitive_def,((cHOL4.min.= @ cHOL4.Omega.calc_nightmare_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X3)))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X4]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.bool.F)) @ (^[X10]: (^[X3]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X11)) @ ((cHOL4.integer.int_le @ X11) @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X4)) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X4))) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X4))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X5)) @ ((cHOL4.integer.int_add @ X1) @ X11)))))) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))))))))))))))))))))) (TOmega.calc_nightmare_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Omega.calc_nightmare @ X0) @ X1) @ X2)) @ (cHOL4.Omega.calc_nightmare_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (TOmega.MAP2_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((((X0 @ X1) @ X2) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((X0 @ X1) @ X2) @ cHOL4.list.NIL) @ X4)) @ ((((X0 @ X1) @ X2) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((((X0 @ X1) @ X2) @ X6) @ cHOL4.list.NIL)) @ ((((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ X5) @ X6)) @ cHOL4.list.NIL))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((X0 @ X1) @ X2) @ X6) @ X4)) @ ((((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ X5) @ X6)) @ ((cHOL4.list.CONS @ X3) @ X4))))))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((((X0 @ X7) @ X8) @ X9) @ X10))))))))))))) (TOmega.MAP2_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X2))) @ ((cHOL4.list.CONS @ ((X1 @ X0) @ X3)) @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ cHOL4.list.NIL) @ X2)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ ((cHOL4.list.CONS @ X5) @ X4)) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ ((X1 @ X5) @ X0)) @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ X4) @ cHOL4.list.NIL)))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ ((cHOL4.list.CONS @ X5) @ X4)) @ ((cHOL4.list.CONS @ X3) @ X2))) @ ((cHOL4.list.CONS @ ((X1 @ X5) @ X3)) @ ((((cHOL4.Omega.MAP2 @ X0) @ X1) @ X4) @ X2))))))))))))))))))) (TOmega.MAP2_zero_ADD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ cHOL4.integer.int_add) @ cHOL4.list.NIL) @ X0)) @ X0)) @ ((cHOL4.min.= @ ((((cHOL4.Omega.MAP2 @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ cHOL4.integer.int_add) @ X0) @ cHOL4.list.NIL)) @ X0))))) (TOmega.sumc_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((X0 @ X5) @ X7)) @ ((X0 @ ((cHOL4.list.CONS @ X4) @ X5)) @ ((cHOL4.list.CONS @ X6) @ X7)))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((X0 @ X8) @ X9))))))))) (TOmega.sumc_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ X0) @ cHOL4.list.NIL)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X1))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ ((cHOL4.list.CONS @ X6) @ X5)) @ ((cHOL4.list.CONS @ X4) @ X3))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X6) @ X4)) @ ((cHOL4.Omega.sumc @ X5) @ X3)))))))))))))) (TOmega.sumc_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ cHOL4.list.NIL) @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ X0) @ cHOL4.list.NIL)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ ((cHOL4.list.CONS @ X2) @ X0)) @ ((cHOL4.list.CONS @ X3) @ X1))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X2) @ X3)) @ ((cHOL4.Omega.sumc @ X0) @ X1)))))))))))))) (TOmega.sumc_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_add @ ((cHOL4.Omega.sumc @ X0) @ X1)) @ ((cHOL4.Omega.sumc @ X2) @ X1))) @ ((cHOL4.Omega.sumc @ ((((cHOL4.Omega.MAP2 @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ cHOL4.integer.int_add) @ X0) @ X2)) @ X1))))))))) (TOmega.sumc_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ X2) @ ((cHOL4.Omega.sumc @ X0) @ X1))) @ ((cHOL4.Omega.sumc @ ((cHOL4.list.MAP @ (^[X3]: ((cHOL4.integer.int_mul @ X2) @ X3))) @ X0)) @ X1))))))))) (TOmega.sumc_singleton,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.list.CONS @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (X0 @ X1))))))) (TOmega.sumc_nonsingle,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.Omega.sumc @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (X0 @ X2)) @ X3)) @ ((cHOL4.Omega.sumc @ ((cHOL4.list.MAP @ X0) @ X1)) @ X4)))))))))))))) (TOmega.equality_removal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.Omega.sumc @ X2) @ X3)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_neg @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X4)) @ ((cHOL4.Omega.sumc @ ((cHOL4.list.MAP @ (^[X1]: ((cHOL4.Omega.modhat @ X1) @ ((cHOL4.integer.int_add @ X0) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ X2)) @ X3)))) @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ ((cHOL4.integer.int_add @ ((cHOL4.integer.int_mul @ X0) @ X1)) @ ((cHOL4.Omega.sumc @ X2) @ X3))))))))))))))))) (TOmega.evalupper_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X1) @ X4)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (TOmega.evalupper_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.evalupper @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.Omega.evalupper @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X1)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X0)) @ X1)) @ ((cHOL4.Omega.evalupper @ X0) @ X2))))))))))))) (TOmega.evallower_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X1) @ X4)) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (TOmega.evallower_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.evallower @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.Omega.evallower @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X1)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X1) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X0))) @ ((cHOL4.Omega.evallower @ X0) @ X2))))))))))))) (TOmega.smaller_satisfies_uppers,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X1) @ X0)) @ ((cHOL4.integer.int_lt @ X2) @ X1))) @ ((cHOL4.Omega.evalupper @ X2) @ X0))))))))) (TOmega.bigger_satisfies_lowers,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evallower @ X1) @ X0)) @ ((cHOL4.integer.int_lt @ X1) @ X2))) @ ((cHOL4.Omega.evallower @ X2) @ X0))))))))) (TOmega.onlylowers_satisfiable,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.Omega.evallower @ X1) @ X0))))))) (TOmega.onlyuppers_satisfiable,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.Omega.evalupper @ X1) @ X0))))))) (TOmega.rshadow_row_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X5)) @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X8))))))))))) (TOmega.rshadow_row_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ X3)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X4)) @ X0))) @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2))))))))))))))) (TOmega.singleton_real_shadow,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ X2)) @ X1)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X3)) @ ((cHOL4.Omega.evallower @ X2) @ X3))) @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)))))))))))) (TOmega.real_shadow_revimp_uppers1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evallower @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1)) @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst1) @ X0)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X3) @ X0)) @ ((cHOL4.Omega.evallower @ X3) @ X1))))))))))))))) (TOmega.real_shadow_revimp_lowers1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X4) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evallower @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst1) @ X1))))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X4)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X4) @ X0)) @ ((cHOL4.Omega.evallower @ X4) @ X1))))))))))))))))) (TOmega.real_shadow_always_implied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evallower @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1))))) @ ((cHOL4.Omega.real_shadow @ X0) @ X1))))))))) (TOmega.exact_shadow_case,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst1) @ X0)) @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst1) @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X2) @ X0)) @ ((cHOL4.Omega.evallower @ X2) @ X1))))) @ ((cHOL4.Omega.real_shadow @ X0) @ X1))))))))) (TOmega.dark_shadow_cond_row_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X5)) @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ X8))))))))))) (TOmega.dark_shadow_cond_row_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow_cond_row @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow_cond_row @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X3))) @ X5)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ X4)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X1))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X1)) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ X3))) @ ((cHOL4.integer.int_add @ X5) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.Omega.dark_shadow_cond_row @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2))))))))))))))) (TOmega.dark_shadow_condition_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.list.NIL) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X0 @ X4) @ X1)) @ ((X0 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ X1)))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (TOmega.dark_shadow_condition_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow_condition @ cHOL4.list.NIL) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow_condition @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.dark_shadow_cond_row @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.Omega.dark_shadow_condition @ X1) @ X0))))))))))))) (TOmega.basic_shadow_equivalence,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X2) @ X0)) @ ((cHOL4.Omega.evallower @ X2) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.real_shadow @ X0) @ X1)) @ ((cHOL4.Omega.dark_shadow_condition @ X0) @ X1))))))))) (TOmega.dark_shadow_row_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X5)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (TOmega.dark_shadow_row_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Omega.dark_shadow_row @ X0) @ X1) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Omega.dark_shadow_row @ X0) @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X1)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X0)) @ X4))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X3)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (((cHOL4.Omega.dark_shadow_row @ X0) @ X1) @ X2))))))))))))))) (TOmega.dark_shadow_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.list.NIL) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X0 @ X4) @ X1)) @ ((X0 @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4)) @ X1)))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (TOmega.dark_shadow_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow @ cHOL4.list.NIL) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)) @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.Omega.dark_shadow_row @ X2) @ X3) @ X0)) @ ((cHOL4.Omega.dark_shadow @ X1) @ X0))))))))))))) (TOmega.nightmare_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((((X0 @ X1) @ X2) @ X3) @ X4) @ cHOL4.list.NIL)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ (((((X0 @ X1) @ X2) @ X3) @ X4) @ X7)) @ (((((X0 @ X1) @ X2) @ X3) @ X4) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X7))))))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (((((X0 @ X8) @ X9) @ X10) @ X11) @ X12))))))))))))))) (TOmega.nightmare_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((((cHOL4.Omega.nightmare @ X0) @ X3) @ X1) @ X2) @ cHOL4.list.NIL)) @ cHOL4.bool.F)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((((cHOL4.Omega.nightmare @ X0) @ X3) @ X1) @ X2) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X6)) @ X4))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X7)) @ ((cHOL4.integer.int_le @ X7) @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ (cHOL4.integer.int_of_num @ X5))) @ (cHOL4.integer.int_of_num @ X3))) @ (cHOL4.integer.int_of_num @ X5))) @ (cHOL4.integer.int_of_num @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X0)) @ ((cHOL4.integer.int_add @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X2))))))) @ (((((cHOL4.Omega.nightmare @ X0) @ X3) @ X1) @ X2) @ X4))))))))))))))))))) (TOmega.nightmare_implies_LHS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((((cHOL4.Omega.nightmare @ X1) @ X4) @ X2) @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X1) @ X2)) @ ((cHOL4.Omega.evallower @ X1) @ X3)))))))))))))) (TOmega.dark_shadow_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.dark_shadow @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X5)) @ (cHOL4.list.LIST_TO_SET @ X1)))) @ ((cHOL4.integer.int_ge @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X4)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X5))) @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X2)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.integer.int_sub @ (cHOL4.integer.int_of_num @ X3)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))) (TOmega.real_shadow_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.real_shadow @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X5)) @ (cHOL4.list.LIST_TO_SET @ X1)))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X5)) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X4))))))))))))))))) (TOmega.evalupper_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.evalupper @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X1)) @ X3)))))))))))) (TOmega.evallower_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Omega.evallower @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.integer.int_le @ X3) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X2)) @ X1))))))))))))) (TOmega.nightmare_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.Omega.nightmare @ X1) @ X2) @ X3) @ X4) @ X0)) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X5) @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X6)) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X2))) @ (cHOL4.integer.int_of_num @ X6))) @ (cHOL4.integer.int_of_num @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evallower @ X1) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X6)) @ X1)) @ ((cHOL4.integer.int_add @ X7) @ X5))))))))))))))))))))))))) (TOmega.final_equivalence,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1)) @ ((cHOL4.list.EVERY @ (^[X3]: ((cHOL4.arithmetic.<= @ (cHOL4.pair.FST @ X3)) @ X2))) @ X0)))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X4) @ X0)) @ ((cHOL4.Omega.evallower @ X4) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.real_shadow @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.Omega.dark_shadow @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X4]: (((((cHOL4.Omega.nightmare @ X4) @ X2) @ X0) @ X1) @ X1)))))))))))))) (TOmega.darkrow_implies_realrow,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ (((cHOL4.Omega.dark_shadow_row @ X1) @ X2) @ X0)))) @ ((cHOL4.Omega.rshadow_row @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))))))))) (TOmega.dark_implies_real,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1)) @ ((cHOL4.Omega.dark_shadow @ X0) @ X1)))) @ ((cHOL4.Omega.real_shadow @ X0) @ X1))))))) (TOmega.alternative_equivalence,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ cHOL4.Omega.fst_nzero) @ X1)) @ ((cHOL4.list.EVERY @ (^[X3]: ((cHOL4.arithmetic.<= @ (cHOL4.pair.FST @ X3)) @ X2))) @ X0)))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X4) @ X0)) @ ((cHOL4.Omega.evallower @ X4) @ X1))))) @ ((cHOL4.bool.\/ @ ((cHOL4.Omega.dark_shadow @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X4]: (((((cHOL4.Omega.nightmare @ X4) @ X2) @ X0) @ X1) @ X1))))))))))))) (TOmega.eval_base,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.Omega.evallower @ X0) @ cHOL4.list.NIL))) @ cHOL4.bool.T)) @ X1))))))) (TOmega.eval_step_upper1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ X4)) @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X0)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X2)) @ X1))) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ X4))))))))))))))) (TOmega.eval_step_upper2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X4))) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X6)) @ X0)) @ X2)) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X1))) @ ((cHOL4.Omega.evallower @ X0) @ X4))) @ X5)) @ X3))))))))))))))))) (TOmega.eval_step_lower1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ X4)) @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X5)) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X5) @ X2)) @ X3)))) @ X4))))))))))))))) (TOmega.eval_step_lower2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X4))) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ X2) @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X6)) @ X0))) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X6) @ X2)) @ X4)))) @ X5)) @ X3))))))))))))))))) (TOmega.eval_step_extra1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X2))) @ cHOL4.bool.T)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X2))) @ X3))))))))))) (TOmega.eval_step_extra2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X2))) @ X4)) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X2))) @ ((cHOL4.bool./\ @ X4) @ X3)))))))))))))) (TOmega.eval_step_extra3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ X4) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ X4)) @ X2))))))))))))) (TOmega.eval_step_extra4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ X5)) @ ((cHOL4.bool./\ @ X4) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X3))) @ ((cHOL4.bool./\ @ X5) @ X4))) @ X2))))))))))))))) (TOmega.calc_nightmare_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X5)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (TOmega.calc_nightmare_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.Omega.calc_nightmare @ X0) @ X1) @ cHOL4.list.NIL)) @ cHOL4.bool.F)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.Omega.calc_nightmare @ X0) @ X1) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X2))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X5)) @ ((cHOL4.integer.int_le @ X5) @ ((cHOL4.integer.int_div @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_sub @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ X3))) @ (cHOL4.integer.int_of_num @ X1))) @ (cHOL4.integer.int_of_num @ X3))) @ (cHOL4.integer.int_of_num @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.integer.int_of_num @ X3)) @ X0)) @ ((cHOL4.integer.int_add @ X4) @ X5)))))) @ (((cHOL4.Omega.calc_nightmare @ X0) @ X1) @ X2))))))))))))))) (TOmega.calculational_nightmare,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.Omega.nightmare @ X0) @ X3) @ X1) @ X2) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.Omega.calc_nightmare @ X0) @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.Omega.evalupper @ X0) @ X1)) @ ((cHOL4.Omega.evallower @ X0) @ X2))))))))))))))) (Tone.one_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: X1)) @ X0)))) (Tone.one_DEF,((cHOL4.min.= @ cHOL4.one.one) @ (cHOL4.min.|at| @ (^[X0]: cHOL4.bool.T)))) (Tone.one_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.one.one_CASE @ X0) @ X1)) @ X1)))))) (Tone.one_axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ X0) @ X1)))))) (Tone.one,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ X0) @ cHOL4.one.one)))) (Tone.one_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.?! @ (^[X1]: ((cHOL4.min.= @ (X1 @ cHOL4.one.one)) @ X0)))))) (Tone.one_prim_rec,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (X1 @ cHOL4.one.one)) @ X0)))))) (Tone.one_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (X0 @ cHOL4.one.one)) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tone.FORALL_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ (X0 @ cHOL4.one.one))))) (Tone.one_case_thm,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.one.one_CASE @ cHOL4.one.one) @ X0)) @ X0)))) (Toperator.ASSOC_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ X1) @ ((X0 @ X2) @ X3))) @ ((X0 @ ((X0 @ X1) @ X2)) @ X3)))))))))))) (Toperator.COMM_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.operator.COMM @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1)))))))))) (Toperator.FCOMM_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.operator.FCOMM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((X1 @ X2) @ ((X0 @ X3) @ X4))) @ ((X0 @ ((X1 @ X2) @ X3)) @ X4)))))))))))))) (Toperator.RIGHT_ID_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.operator.RIGHT_ID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X2) @ X1)) @ X2))))))))) (Toperator.LEFT_ID_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.operator.LEFT_ID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ X2))))))))) (Toperator.MONOID_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.operator.MONOID @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.operator.ASSOC @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.operator.RIGHT_ID @ X0) @ X1)) @ ((cHOL4.operator.LEFT_ID @ X0) @ X1))))))))) (Toperator.ASSOC_CONJ,(cHOL4.operator.ASSOC @ cHOL4.bool./\)) (Toperator.ASSOC_SYM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ ((X0 @ X1) @ X2)) @ X3)) @ ((X0 @ X1) @ ((X0 @ X2) @ X3))))))))))))) (Toperator.ASSOC_DISJ,(cHOL4.operator.ASSOC @ cHOL4.bool.\/)) (Toperator.FCOMM_ASSOC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.operator.FCOMM @ X0) @ X0)) @ (cHOL4.operator.ASSOC @ X0))))) (Toperator.MONOID_CONJ_T,((cHOL4.operator.MONOID @ cHOL4.bool./\) @ cHOL4.bool.T)) (Toperator.MONOID_DISJ_F,((cHOL4.operator.MONOID @ cHOL4.bool.\/) @ cHOL4.bool.F)) (Toption.option_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: cHOL4.bool.T)) @ X0)))) (Toption.option_REP_ABS_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.option_ABS @ (cHOL4.option.option_REP @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: cHOL4.bool.T) @ X1)) @ ((cHOL4.min.= @ (cHOL4.option.option_REP @ (cHOL4.option.option_ABS @ X1))) @ X1)))))) (Toption.SOME_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.SOME @ X0)) @ (cHOL4.option.option_ABS @ (cHOL4.sum.INL @ X0)))))) (Toption.NONE_DEF,((cHOL4.min.= @ cHOL4.option.NONE) @ (cHOL4.option.option_ABS @ (cHOL4.sum.INR @ cHOL4.one.one)))) (Toption.option_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ cHOL4.option.NONE) @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ (cHOL4.option.SOME @ X2)) @ X0) @ X1)) @ (X1 @ X2)))))))))) (Toption.OPTION_MAP_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X0) @ (cHOL4.option.SOME @ X1))) @ (cHOL4.option.SOME @ (X0 @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X0) @ cHOL4.option.NONE)) @ cHOL4.option.NONE))))) (Toption.IS_SOME_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ (cHOL4.option.SOME @ X0))) @ cHOL4.bool.T)))) @ ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ cHOL4.option.NONE)) @ cHOL4.bool.F))) (Toption.IS_NONE_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.IS_NONE @ (cHOL4.option.SOME @ X0))) @ cHOL4.bool.F)))) @ ((cHOL4.min.= @ (cHOL4.option.IS_NONE @ cHOL4.option.NONE)) @ cHOL4.bool.T))) (Toption.THE_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.THE @ (cHOL4.option.SOME @ X0))) @ X0)))) (Toption.OPTION_MAP2_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.option.IS_SOME @ X1)) @ (cHOL4.option.IS_SOME @ X2))) @ (cHOL4.option.SOME @ ((X0 @ (cHOL4.option.THE @ X1)) @ (cHOL4.option.THE @ X2)))) @ cHOL4.option.NONE))))))))) (Toption.OPTION_JOIN_DEF,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.option.OPTION_JOIN @ cHOL4.option.NONE)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.OPTION_JOIN @ (cHOL4.option.SOME @ X0))) @ X0))))) (Toption.OPTION_BIND_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_BIND @ cHOL4.option.NONE) @ X0)) @ cHOL4.option.NONE)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_BIND @ (cHOL4.option.SOME @ X1)) @ X0)) @ (X0 @ X1)))))))) (Toption.OPTION_IGNORE_BIND_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_IGNORE_BIND @ X0) @ X1)) @ ((cHOL4.option.OPTION_BIND @ X0) @ (cHOL4.combin.K @ X1)))))))) (Toption.OPTION_GUARD_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.option.OPTION_GUARD @ cHOL4.bool.T)) @ (cHOL4.option.SOME @ cHOL4.one.one))) @ ((cHOL4.min.= @ (cHOL4.option.OPTION_GUARD @ cHOL4.bool.F)) @ cHOL4.option.NONE))) (Toption.OPTION_CHOICE_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_CHOICE @ cHOL4.option.NONE) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_CHOICE @ (cHOL4.option.SOME @ X1)) @ X0)) @ (cHOL4.option.SOME @ X1)))))))) (Toption.OPTREL_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.option.OPTREL @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X2) @ cHOL4.option.NONE))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.option.SOME @ X4))) @ ((X0 @ X3) @ X4)))))))))))))))) (Toption.some_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.some @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.option.SOME @ (cHOL4.min.|at| @ (^[X1]: (X0 @ X1))))) @ cHOL4.option.NONE))))) (Toption.option_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.option.NONE)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.option.SOME @ X3))) @ (X1 @ X3)))))))))))) (Toption.option_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.option.SOME @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Toption.option_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.option.SOME @ X1)))))))) (Toption.FORALL_OPTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.option.SOME @ X2))))))))) (Toption.EXISTS_OPTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool.\/ @ (X0 @ cHOL4.option.NONE)) @ (cHOL4.bool.? @ (^[X2]: (X0 @ (cHOL4.option.SOME @ X2))))))))) (Toption.SOME_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.option.SOME @ X0)) @ (cHOL4.option.SOME @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Toption.NOT_NONE_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X0)))))) (Toption.NOT_SOME_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.option.SOME @ X0)) @ cHOL4.option.NONE))))) (Toption.OPTION_MAP2_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X2) @ (cHOL4.option.SOME @ X1)) @ (cHOL4.option.SOME @ X0))) @ (cHOL4.option.SOME @ ((X2 @ X1) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X2) @ (cHOL4.option.SOME @ X1)) @ cHOL4.option.NONE)) @ cHOL4.option.NONE)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X2) @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X0))) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X2) @ cHOL4.option.NONE) @ cHOL4.option.NONE)) @ cHOL4.option.NONE))))))))))) (Toption.IS_NONE_EQ_NONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.IS_NONE @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE))))) (Toption.NOT_IS_SOME_EQ_NONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.option.IS_SOME @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE))))) (Toption.option_case_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X0) @ cHOL4.option.NONE) @ cHOL4.option.SOME)) @ X0)))) (Toption.option_case_SOME_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X0) @ X0) @ cHOL4.option.SOME)) @ X0)))) (Toption.option_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.option.SOME @ X3)) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.min.= @ X3) @ X4))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.option.THE @ (cHOL4.option.SOME @ X3))) @ X3)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X3)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.option.SOME @ X3)) @ cHOL4.option.NONE))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ (cHOL4.option.SOME @ X3))) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ cHOL4.option.NONE)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.option.IS_NONE @ X5)) @ ((cHOL4.min.= @ X5) @ cHOL4.option.NONE))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.option.IS_SOME @ X5))) @ ((cHOL4.min.= @ X5) @ cHOL4.option.NONE))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.option.IS_SOME @ X5)) @ ((cHOL4.min.= @ (cHOL4.option.SOME @ (cHOL4.option.THE @ X5))) @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X5) @ cHOL4.option.NONE) @ cHOL4.option.SOME)) @ X5)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X5) @ X5) @ cHOL4.option.SOME)) @ X5)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.option.IS_NONE @ X5)) @ ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X5) @ X2) @ X0)) @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.option.IS_SOME @ X5)) @ ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X5) @ X2) @ X0)) @ (X0 @ (cHOL4.option.THE @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.option.IS_SOME @ X5)) @ ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X5) @ X1) @ cHOL4.option.SOME)) @ X5))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ cHOL4.option.NONE) @ X6) @ X0)) @ X6)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ (cHOL4.option.SOME @ X3)) @ X6) @ X0)) @ (X0 @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X0) @ (cHOL4.option.SOME @ X3))) @ (cHOL4.option.SOME @ (X0 @ X3)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X0) @ cHOL4.option.NONE)) @ cHOL4.option.NONE)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.option.OPTION_JOIN @ cHOL4.option.NONE)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.option.OPTION_JOIN @ (cHOL4.option.SOME @ X5))) @ X5))))))))))))))))))))))))))))) (Toption.option_case_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X0) @ X2) @ X1)) @ (((cHOL4.bool.COND @ (cHOL4.option.IS_SOME @ X0)) @ (X1 @ (cHOL4.option.THE @ X0))) @ X2))))))))) (Toption.IF_EQUALS_OPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ (cHOL4.option.SOME @ X1)) @ cHOL4.option.NONE)) @ cHOL4.option.NONE)) @ (cHOL4.bool.~ @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X1))) @ cHOL4.option.NONE)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ (cHOL4.option.SOME @ X1)) @ cHOL4.option.NONE)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ X2) @ ((cHOL4.min.= @ X1) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X1))) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.= @ X1) @ X0))))))))))))) (Toption.IF_NONE_EQUALS_OPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ X1) @ cHOL4.option.NONE)) @ cHOL4.option.NONE)) @ ((cHOL4.min.==> @ X2) @ (cHOL4.option.IS_NONE @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ cHOL4.option.NONE) @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.==> @ (cHOL4.option.IS_SOME @ X1)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ X1) @ cHOL4.option.NONE)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ X2) @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X2) @ cHOL4.option.NONE) @ X1)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X0)))))))))))))) (Toption.OPTION_MAP_EQ_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X0) @ X1)) @ (cHOL4.option.SOME @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.min.= @ X2) @ (X0 @ X3))))))))))))) (Toption.OPTION_MAP_EQ_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X0) @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X1) @ cHOL4.option.NONE))))))) (Toption.OPTION_MAP_EQ_NONE_both_ways,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X1) @ X0)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.option.NONE) @ ((cHOL4.option.OPTION_MAP @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE)))))))) (Toption.OPTION_MAP_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X2) @ ((cHOL4.option.OPTION_MAP @ X1) @ X0))) @ ((cHOL4.option.OPTION_MAP @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) (Toption.OPTION_MAP_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X2) @ X0)) @ ((cHOL4.option.OPTION_MAP @ X3) @ X1)))))))))))) (Toption.OPTION_JOIN_EQ_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.option.OPTION_JOIN @ X0)) @ (cHOL4.option.SOME @ X1))) @ ((cHOL4.min.= @ X0) @ (cHOL4.option.SOME @ (cHOL4.option.SOME @ X1))))))))) (Toption.OPTION_MAP2_SOME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X3) @ X2) @ X1)) @ (cHOL4.option.SOME @ X0))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X5))) @ ((cHOL4.min.= @ X0) @ ((X3 @ X4) @ X5)))))))))))))))))) (Toption.OPTION_MAP2_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X2) @ X1) @ X0)) @ cHOL4.option.NONE)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE)))))))))) (Toption.OPTION_MAP2_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X6))) @ ((cHOL4.min.= @ X3) @ (cHOL4.option.SOME @ X7)))) @ ((cHOL4.min.= @ ((X4 @ X6) @ X7)) @ ((X5 @ X6) @ X7)))))))))) @ ((cHOL4.min.= @ (((cHOL4.option.OPTION_MAP2 @ X4) @ X0) @ X2)) @ (((cHOL4.option.OPTION_MAP2 @ X5) @ X1) @ X3)))))))))))))))) (Toption.OPTION_BIND_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_BIND @ X0) @ X2)) @ ((cHOL4.option.OPTION_BIND @ X1) @ X3)))))))))))) (Toption.OPTION_BIND_EQUALS_OPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_BIND @ X1) @ X2)) @ cHOL4.option.NONE)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.option.NONE)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.option.NONE))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_BIND @ X1) @ X2)) @ (cHOL4.option.SOME @ X0))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.option.SOME @ X3))) @ ((cHOL4.min.= @ (X2 @ X3)) @ (cHOL4.option.SOME @ X0)))))))))))))) (Toption.OPTION_IGNORE_BIND_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_IGNORE_BIND @ cHOL4.option.NONE) @ X1)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_IGNORE_BIND @ (cHOL4.option.SOME @ X0)) @ X1)) @ X1))))))) (Toption.OPTION_GUARD_COND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.OPTION_GUARD @ X0)) @ (((cHOL4.bool.COND @ X0) @ (cHOL4.option.SOME @ cHOL4.one.one)) @ cHOL4.option.NONE))))) (Toption.OPTION_GUARD_EQ_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.option.OPTION_GUARD @ X0)) @ (cHOL4.option.SOME @ cHOL4.one.one))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.option.OPTION_GUARD @ X0)) @ cHOL4.option.NONE)) @ (cHOL4.bool.~ @ X0)))))) (Toption.OPTION_CHOICE_EQ_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.option.OPTION_CHOICE @ X1) @ X0)) @ cHOL4.option.NONE)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE)))))))) (Toption.OPTREL_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X3 @ X4) @ X5)) @ ((X2 @ X4) @ X5))))))) @ ((cHOL4.min.==> @ (((cHOL4.option.OPTREL @ X3) @ X1) @ X0)) @ (((cHOL4.option.OPTREL @ X2) @ X1) @ X0)))))))))))) (Toption.OPTREL_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (((cHOL4.option.OPTREL @ X0) @ X2) @ X2))))))) (Toption.some_intro,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ (cHOL4.option.SOME @ X2)))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ (X0 @ cHOL4.option.NONE)))) @ (X0 @ (cHOL4.option.some @ X1)))))))) (Toption.some_elim,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ (cHOL4.option.some @ X1))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ (cHOL4.option.SOME @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ (X0 @ cHOL4.option.NONE))))))))) (Toption.some_F,((cHOL4.min.= @ (cHOL4.option.some @ (^[X0]: cHOL4.bool.F))) @ cHOL4.option.NONE)) (Toption.some_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.option.some @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ (cHOL4.option.some @ (^[X1]: ((cHOL4.min.= @ X0) @ X1)))) @ (cHOL4.option.SOME @ X0)))))) (Toption.option_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X4) @ X0))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (cHOL4.option.SOME @ X6))) @ ((cHOL4.min.= @ (X5 @ X6)) @ (X1 @ X6)))))))) @ ((cHOL4.min.= @ (((cHOL4.option.option_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.option.option_CASE @ X3) @ X0) @ X1)))))))))))))))) (Tpair.prod_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X2)) @ ((cHOL4.min.= @ X5) @ X3))))))))))) @ X0)))) (Tpair.ABS_REP_prod,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pair.ABS_prod @ (cHOL4.pair.REP_prod @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X2) @ (^[X5]: (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X3)) @ ((cHOL4.min.= @ X6) @ X4)))))))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.pair.REP_prod @ (cHOL4.pair.ABS_prod @ X1))) @ X1)))))) (Tpair.COMMA_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (cHOL4.pair.ABS_prod @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X0)) @ ((cHOL4.min.= @ X3) @ X1))))))))))) (Tpair.PAIR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.SND @ X0))) @ X0)))) (Tpair.SWAP_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pair.SWAP @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.pair.SND @ X0)) @ (cHOL4.pair.FST @ X0)))))) (Tpair.CURRY_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pair.CURRY @ X0) @ X1) @ X2)) @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))) (Tpair.UNCURRY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ X0) @ X1)) @ ((X0 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1)))))))) (Tpair.PAIR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pair.## @ X0) @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ (X0 @ (cHOL4.pair.FST @ X2))) @ (X1 @ (cHOL4.pair.SND @ X2))))))))))) (Tpair.pair_CASE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.pair_CASE @ X0) @ X1)) @ ((X1 @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.SND @ X0)))))))) (Tpair.LEX_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.LEX @ X0) @ X1)) @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool.\/ @ ((X0 @ X2) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X4)) @ ((X1 @ X3) @ X5))))))))))))))) (Tpair.RPROD_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.RPROD @ X0) @ X1)) @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ ((X0 @ X2) @ X4)) @ ((X1 @ X3) @ X5)))))))))))))) (Tpair.PAIR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ ((cHOL4.pair.|comma| @ X3) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.min.= @ X0) @ X2)))))))))))) (Tpair.CLOSED_PAIR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tpair.ABS_PAIR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))) (Tpair.pair_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))) (Tpair.FST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pair.FST @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X0)))))) (Tpair.SND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pair.SND @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X1)))))) (Tpair.PAIR_FST_SND_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.FST @ X1))) @ ((cHOL4.min.= @ (cHOL4.pair.SND @ X0)) @ (cHOL4.pair.SND @ X1))))))))) (Tpair.UNCURRY_VAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ X0) @ X1)) @ ((X0 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1)))))))) (Tpair.ELIM_UNCURRY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pair.UNCURRY @ X0)) @ (^[X1]: ((X0 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1))))))) (Tpair.UNCURRY_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((X0 @ X1) @ X2))))))))) (Tpair.CURRY_UNCURRY_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pair.CURRY @ (cHOL4.pair.UNCURRY @ X0))) @ X0)))) (Tpair.UNCURRY_CURRY_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pair.UNCURRY @ (cHOL4.pair.CURRY @ X0))) @ X0)))) (Tpair.CURRY_ONE_ONE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.pair.CURRY @ X1)) @ (cHOL4.pair.CURRY @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tpair.UNCURRY_ONE_ONE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.pair.UNCURRY @ X1)) @ (cHOL4.pair.UNCURRY @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tpair.pair_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((X0 @ X2) @ X3))))))))))) (Tpair.UNCURRY_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X2)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.min.= @ ((X1 @ X4) @ X5)) @ ((X0 @ X4) @ X5))))))))) @ ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ X1) @ X3)) @ ((cHOL4.pair.UNCURRY @ X0) @ X2)))))))))))) (Tpair.LAMBDA_PROD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (^[X1]: (X0 @ X1))) @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))) (Tpair.EXISTS_PROD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))) (Tpair.FORALL_PROD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))) (Tpair.pair_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tpair.ELIM_PEXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((X0 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((X0 @ X2) @ X3))))))))) (Tpair.ELIM_PFORALL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ X2) @ X3))))))))) (Tpair.PFORALL_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X1) @ X2)))))) @ (cHOL4.bool.! @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((X0 @ X1) @ X2))))))))) (Tpair.PEXISTS_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((X0 @ X1) @ X2)))))) @ (cHOL4.bool.? @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((X0 @ X1) @ X2))))))))) (Tpair.ELIM_PEXISTS_EVAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (cHOL4.pair.UNCURRY @ (^[X1]: (X0 @ X1))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (X0 @ X1)))))))) (Tpair.ELIM_PFORALL_EVAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (cHOL4.pair.UNCURRY @ (^[X1]: (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (X0 @ X1)))))))) (Tpair.PAIR_MAP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.pair.## @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ (X0 @ X2)) @ (X1 @ X3)))))))))))) (Tpair.FST_PAIR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (((cHOL4.pair.## @ X1) @ X2) @ X0))) @ (X1 @ (cHOL4.pair.FST @ X0)))))))))) (Tpair.SND_PAIR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.pair.SND @ (((cHOL4.pair.## @ X1) @ X2) @ X0))) @ (X2 @ (cHOL4.pair.SND @ X0)))))))))) (Tpair.LET2_RAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X0 @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((X2 @ X3) @ X4))))) @ X1))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: (X0 @ ((X2 @ X3) @ X4)))))) @ X1))))))))) (Tpair.LET2_RATOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((X1 @ X3) @ X4))))) @ X0) @ X2)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: (((X1 @ X3) @ X4) @ X2))))) @ X0))))))))) (Tpair.o_UNCURRY_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ X1) @ (cHOL4.pair.UNCURRY @ X0))) @ (cHOL4.pair.UNCURRY @ ((cHOL4.combin.o @ (cHOL4.combin.o @ X1)) @ X0)))))))) (Tpair.C_UNCURRY_L,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.C @ (cHOL4.pair.UNCURRY @ X1)) @ X0)) @ (cHOL4.pair.UNCURRY @ ((cHOL4.combin.C @ ((cHOL4.combin.o @ cHOL4.combin.C) @ X1)) @ X0)))))))) (Tpair.S_UNCURRY_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.S @ X1) @ (cHOL4.pair.UNCURRY @ X0))) @ (cHOL4.pair.UNCURRY @ ((cHOL4.combin.S @ ((cHOL4.combin.o @ cHOL4.combin.S) @ ((cHOL4.combin.o @ (cHOL4.combin.o @ X1)) @ cHOL4.pair.|comma|))) @ X0)))))))) (Tpair.FORALL_UNCURRY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (cHOL4.pair.UNCURRY @ X0))) @ (cHOL4.bool.! @ ((cHOL4.combin.o @ cHOL4.bool.!) @ X0)))))) (Tpair.PAIR_FUN_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.?! @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.?! @ (^[X2]: (X0 @ (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.FST @ X2) @ X3)) @ ((cHOL4.pair.SND @ X2) @ X3)))))))))) (Tpair.pair_case_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pair.pair_CASE @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2)) @ ((X2 @ X1) @ X0))))))))) (Tpair.pair_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pair.pair_CASE @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2)) @ ((X2 @ X1) @ X0))))))))) (Tpair.pair_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.min.= @ ((X3 @ X4) @ X5)) @ ((X0 @ X4) @ X5))))))))) @ ((cHOL4.min.= @ ((cHOL4.pair.pair_CASE @ X1) @ X3)) @ ((cHOL4.pair.pair_CASE @ X2) @ X0)))))))))))) (Tpair.LEX_DEF_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.pair.LEX @ X5) @ X4) @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ ((cHOL4.pair.|comma| @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((X5 @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X1)) @ ((X4 @ X2) @ X0))))))))))))))))) (Tpair.WF_LEX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.WF @ X1))) @ (cHOL4.relation.WF @ ((cHOL4.pair.LEX @ X0) @ X1)))))))) (Tpair.WF_RPROD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.WF @ X1))) @ (cHOL4.relation.WF @ ((cHOL4.pair.RPROD @ X0) @ X1)))))))) (TPast_Temporal_Logic.InitPoint,((cHOL4.min.= @ cHOL4.Past_Temporal_Logic.InitPoint) @ (^[X0]: ((cHOL4.min.= @ X0) @ cHOL4.num.0)))) (TPast_Temporal_Logic.PSNEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ (X0 @ (cHOL4.prim_rec.PRE @ X1))))))))) (TPast_Temporal_Logic.PNEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (X0 @ (cHOL4.prim_rec.PRE @ X1))))))))) (TPast_Temporal_Logic.PALWAYS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ (X0 @ X2)))))))))) (TPast_Temporal_Logic.PEVENTUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X1)) @ (X0 @ X2)))))))))) (TPast_Temporal_Logic.PSWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X4)) @ ((cHOL4.arithmetic.<= @ X4) @ X2))) @ (cHOL4.bool.~ @ (X1 @ X4)))))))))))))))))) (TPast_Temporal_Logic.PSUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X4)) @ ((cHOL4.arithmetic.<= @ X4) @ X2))) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (cHOL4.bool.~ @ (X1 @ X4)))))))))))))))))) (TPast_Temporal_Logic.PSBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X4)) @ ((cHOL4.arithmetic.<= @ X4) @ X2))) @ (cHOL4.bool.~ @ (X1 @ X4))))))))))))))))) (TPast_Temporal_Logic.PWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ (cHOL4.bool.~ @ (X1 @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.arithmetic.<= @ X3) @ X2))) @ (cHOL4.bool.~ @ (X1 @ X3))))))))))))))))))) (TPast_Temporal_Logic.PUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ (X0 @ X3))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X2)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.arithmetic.<= @ X3) @ X2))) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (cHOL4.bool.~ @ (X1 @ X3))))))))))))))))))) (TPast_Temporal_Logic.PBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ (cHOL4.bool.~ @ (X1 @ X3)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X3)) @ ((cHOL4.arithmetic.<= @ X3) @ X2))) @ (cHOL4.bool.~ @ (X1 @ X3)))))))))))))))))) (TPast_Temporal_Logic.INITIALISATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ cHOL4.num.0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ cHOL4.num.0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X1) @ cHOL4.num.0)) @ (X1 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1) @ cHOL4.num.0)) @ (X1 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ cHOL4.num.0)) @ (X0 @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (X1 @ cHOL4.num.0)) @ (X0 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (X1 @ cHOL4.num.0)) @ (cHOL4.bool.~ @ (X0 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0) @ cHOL4.num.0)) @ ((cHOL4.bool.\/ @ (X1 @ cHOL4.num.0)) @ (X0 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0) @ cHOL4.num.0)) @ ((cHOL4.bool.\/ @ (X1 @ cHOL4.num.0)) @ (cHOL4.bool.~ @ (X0 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ cHOL4.num.0)) @ (cHOL4.bool.~ @ (X0 @ cHOL4.num.0))))))))))))))))) (TPast_Temporal_Logic.RECURSION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.bool.COND @ (X0 @ X2)) @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.bool.\/ @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.bool.COND @ (X0 @ X2)) @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.bool.\/ @ (X1 @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.bool.\/ @ (X1 @ X2)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X2))) @ ((cHOL4.bool.\/ @ (X1 @ X2)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ X2))))))))))))))))))))))))) (TPast_Temporal_Logic.FIXPOINTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X3))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.ALWAYS @ X2))) @ ((cHOL4.min.= @ X0) @ (^[X3]: cHOL4.bool.F))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X3))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.EVENTUAL @ X2))) @ ((cHOL4.min.= @ X0) @ (^[X3]: cHOL4.bool.T))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X3)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: (((cHOL4.bool.COND @ (X1 @ X3)) @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X3))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X3)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X3))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X0) @ X3))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X0) @ X3)))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X0) @ X3)))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X0) @ X3)))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X3)))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X3)))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X3)))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1)))))))))))))))))))))) (TPast_Temporal_Logic.SUNTIL_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: cHOL4.bool.T)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: cHOL4.bool.T)) @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))))))))))))) (TPast_Temporal_Logic.UNTIL_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: (((cHOL4.Temporal_Logic.UNTIL @ X1) @ (^[X2]: cHOL4.bool.F)) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ (^[X2]: cHOL4.bool.F)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))))))))))))) (TPast_Temporal_Logic.WHEN_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: (((cHOL4.Temporal_Logic.WHEN @ (^[X2]: cHOL4.bool.F)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ (^[X2]: cHOL4.bool.F)) @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.WHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.WHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ X0) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))))))))))))) (TPast_Temporal_Logic.SWHEN_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: cHOL4.bool.T)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: (((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: cHOL4.bool.T)) @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.SWHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ X0) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))))))))))))) (TPast_Temporal_Logic.BEFORE_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: (((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.F)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.F)) @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.BEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))))))))))))) (TPast_Temporal_Logic.SBEFORE_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ (^[X2]: cHOL4.bool.F)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ (^[X2]: (((cHOL4.Temporal_Logic.SBEFORE @ X1) @ (^[X2]: cHOL4.bool.F)) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))))))))))))) (TPast_Temporal_Logic.PSUNTIL_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: cHOL4.bool.T)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: cHOL4.bool.T)) @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))))))))))))) (TPast_Temporal_Logic.PUNTIL_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ (^[X2]: cHOL4.bool.F)) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ (^[X2]: cHOL4.bool.F)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))))))))))))) (TPast_Temporal_Logic.PWHEN_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: cHOL4.bool.F)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: cHOL4.bool.F)) @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PWHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X0) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))))))))))))) (TPast_Temporal_Logic.PSWHEN_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: cHOL4.bool.T)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: cHOL4.bool.T)) @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSWHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X0) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)))))))))))))) (TPast_Temporal_Logic.PBEFORE_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: cHOL4.bool.F)) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: cHOL4.bool.F)) @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))))))))))))) (TPast_Temporal_Logic.PSBEFORE_EXPRESSIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ (^[X2]: cHOL4.bool.F)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ (^[X2]: cHOL4.bool.F)) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ (^[X2]: (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X2))))))))))))))) (TPast_Temporal_Logic.NEGATION_NORMAL_FORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X0))) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.ALWAYS @ X2) @ X0))) @ ((cHOL4.Temporal_Logic.EVENTUAL @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.EVENTUAL @ X2) @ X0))) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.WHEN @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X2) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X2) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1) @ X0))) @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1) @ X0))) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X0))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1) @ X0))) @ (((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X0))) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1) @ X0))) @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X1) @ X0))))))))))))))))))))))))))) (TPast_Temporal_Logic.CONJUNCTIVE_NORMAL_FORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.ALWAYS @ X2) @ X3)) @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.WHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ X2) @ X3)) @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ X2) @ X3)) @ (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PSNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X2) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ X2) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X0) @ X1) @ X3))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ X2) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X0) @ X1) @ X3))))))))))))))))))))))))))) (TPast_Temporal_Logic.DISJUNCTIVE_NORMAL_FORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.EVENTUAL @ X2) @ X3)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.WHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X3)) @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X3)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X0) @ X3)) @ (((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X2) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X0) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X3))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X0)) @ (^[X3]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X0) @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0) @ X3)))))))))))))))))))))))))) (TPast_Temporal_Logic.PRENEX_NEXT_NORMAL_FORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X0))) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool./\ @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X0)) @ (X1 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.\/ @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X0)) @ (X1 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.EVENTUAL @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SWHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.UNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ X2) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.BEFORE @ X2) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0)) @ (X2 @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PSNEXT @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X2 @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0)) @ (X2 @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ (cHOL4.Temporal_Logic.NEXT @ X2))) @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X2 @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X1 @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X1 @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X1 @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (cHOL4.Past_Temporal_Logic.PNEXT @ X2)) @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X1 @ X0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0))) @ (X2 @ X0)))) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X0)) @ (X2 @ X0)))) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (cHOL4.Temporal_Logic.NEXT @ X2)) @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1))))))))))))))))))))))))))))))))))))))))))) (TPast_Temporal_Logic.NEXT_INWARDS_NORMAL_FORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X1))) @ (cHOL4.Temporal_Logic.ALWAYS @ (cHOL4.Temporal_Logic.NEXT @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))) @ (cHOL4.Temporal_Logic.EVENTUAL @ (cHOL4.Temporal_Logic.NEXT @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.SUNTIL @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.SWHEN @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.SBEFORE @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.UNTIL @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.WHEN @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ (cHOL4.Temporal_Logic.NEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1))) @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1))) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0))) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0) @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0))) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0) @ X2))))) @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X2)))))))))))))))))))))))))))))) (TPast_Temporal_Logic.PNEXT_INWARDS_NORMAL_FORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X2)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X2)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Temporal_Logic.NEXT @ X1))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ (X1 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X1))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.SUNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.SWHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.SBEFORE @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.UNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.WHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1))) @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X0)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X0)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0))) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2)) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)) @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PNEXT @ X0)))) @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0))) @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (cHOL4.Past_Temporal_Logic.PNEXT @ X1)) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X0))))))))))))))))))))))))))) (TPast_Temporal_Logic.SIMPLIFY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: cHOL4.bool.F)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (cHOL4.Temporal_Logic.EVENTUAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: cHOL4.bool.F)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ (^[X2]: cHOL4.bool.F))) @ (cHOL4.Temporal_Logic.ALWAYS @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (cHOL4.Temporal_Logic.EVENTUAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ (^[X2]: cHOL4.bool.T))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X1)) @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ (^[X2]: cHOL4.bool.T))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X1)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ (^[X2]: cHOL4.bool.F))) @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X1)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X1)) @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X2]: cHOL4.bool.F))) @ cHOL4.Past_Temporal_Logic.InitPoint)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PSNEXT @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PSNEXT @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: (cHOL4.bool.~ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: cHOL4.bool.F)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: cHOL4.bool.F)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ (^[X2]: cHOL4.bool.F))) @ (cHOL4.Past_Temporal_Logic.PALWAYS @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ (^[X2]: cHOL4.bool.T))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X1)) @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ (^[X2]: cHOL4.bool.T))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X1)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ (^[X2]: cHOL4.bool.F))) @ (cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X1)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X1)) @ (cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TPast_Temporal_Logic.MORE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PWHEN @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PWHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PUNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PSWHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PSBEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0)))))))))))))))))) (TPast_Temporal_Logic.IMMEDIATE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (X2 @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X2) @ X0)) @ (cHOL4.bool.~ @ (X2 @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (X2 @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X2) @ X0)) @ (cHOL4.bool.~ @ (X2 @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1) @ X0)) @ (X2 @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X2) @ X0)) @ (cHOL4.bool.~ @ (X2 @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1) @ X0)) @ (X2 @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X2) @ X0)) @ (cHOL4.bool.~ @ (X2 @ X0)))))))))))))))))))))))))) (TPast_Temporal_Logic.NO_FUTURE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X3) @ X1) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X3) @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.ALWAYS @ X3) @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ X1) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X3) @ X1) @ X0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ X1) @ X0)) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X3) @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X3) @ X0))))))))))))))) (TPast_Temporal_Logic.NO_PAST_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X0]: (cHOL4.bool.~ @ (X1 @ X0)))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X2) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PALWAYS @ (^[X0]: (cHOL4.bool.~ @ (X2 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1) @ X0)) @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X2) @ X0))) @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X2) @ X0)) @ cHOL4.bool.F)))))))))))))))) (TPast_Temporal_Logic.SOME_FUTURE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)))))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)))))))))))) (TPast_Temporal_Logic.SOME_PAST_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Past_Temporal_Logic.PEVENTUAL @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PWHEN @ X2) @ X1) @ X0)) @ (((cHOL4.Past_Temporal_Logic.PSWHEN @ X2) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PUNTIL @ X2) @ X1) @ X0)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X0)) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X2) @ X1) @ X0))) @ ((cHOL4.min.= @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X2) @ X0)) @ (((cHOL4.Past_Temporal_Logic.PSBEFORE @ X1) @ X2) @ X0))))))))))))) (TPast_Temporal_Logic.SEPARATE_NEXT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ X3)))) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.bool.~ @ (X0 @ X3)))))) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (cHOL4.bool.~ @ (X0 @ X3))))) @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ X3)))) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X3)))))) @ ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (cHOL4.bool.~ @ (X0 @ X3))))) @ X3)) @ ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X3))))))))))))))))))) (TPast_Temporal_Logic.SEPARATE_SUNTIL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ (X1 @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ X2) @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ X1) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4))))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4))))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4)))) @ X2) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4)))) @ X2) @ X4)))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X4))))) @ X2) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X4))))) @ X2) @ X4))))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (X2 @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ X1) @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool.\/ @ (X1 @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X3) @ X4)))) @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool.\/ @ (X1 @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X3) @ X4)))) @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X4)))) @ X0)) @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ ((cHOL4.bool.\/ @ (X1 @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))))) @ X0) @ X4))))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X4)))) @ X0)) @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X1 @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4)))) @ X0) @ X4)))))))))))))))))))))) (TPast_Temporal_Logic.SEPARATE_BEFORE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ (X1 @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ X2) @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ X1) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ (X2 @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ X1) @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4)))) @ ((cHOL4.bool.\/ @ (X3 @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Temporal_Logic.NEXT @ X3)) @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X1) @ X4)))) @ ((cHOL4.bool.\/ @ (X3 @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Temporal_Logic.NEXT @ X3)) @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X1) @ X0) @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X4]: (cHOL4.bool.~ @ (X1 @ X4)))) @ X0) @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4))))) @ X2) @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4)))) @ X2) @ X4)))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X1) @ X0) @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: (cHOL4.bool.~ @ (X1 @ X4)))) @ X0) @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X4)))) @ X2) @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X4))))) @ X2) @ X4))))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X4))) @ ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X4)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X3) @ X4)))) @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X4))) @ ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X3) @ X4)))) @ (cHOL4.Temporal_Logic.NEXT @ X1)) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X4)))) @ X0)) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ X2) @ X1) @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X4))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))))) @ X0) @ X4))))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X4)))) @ X0)) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4)))) @ X0) @ X4)))))))))))))))))))))) (TPast_Temporal_Logic.SEPARATE_PNEXT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (cHOL4.Past_Temporal_Logic.InitPoint @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ X3)))) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (X1 @ X3)))) @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.bool.~ @ (X0 @ X3)))))) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ X3)) @ (cHOL4.bool.~ @ (X0 @ X3))))) @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X2) @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X0 @ X3)))) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X3)))))) @ ((cHOL4.min.= @ (cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X3))))) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (cHOL4.bool.~ @ (X0 @ X3))))) @ X3)) @ ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X3)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3)))) @ X3))))))))))))))))) (TPast_Temporal_Logic.SEPARATE_PSUNTIL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ (X1 @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ X2) @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ X1) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4))))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4)))) @ X2) @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4)))) @ X2) @ X4)))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X2 @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X4))))) @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X4))))) @ X2) @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ (^[X4]: ((cHOL4.bool./\ @ (X1 @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X0) @ X4))))) @ X2) @ X4))))) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool./\ @ (X3 @ X4)) @ (X2 @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool./\ @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X3) @ X1) @ X4)) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ X2) @ X1) @ X4))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4)))) @ X1)) @ (^[X4]: ((cHOL4.bool.\/ @ (X1 @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (X3 @ X4)) @ ((cHOL4.Temporal_Logic.NEXT @ X2) @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X3) @ X4)))) @ (cHOL4.Past_Temporal_Logic.PSNEXT @ X1)) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X4)))) @ X0)) @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X2 @ X4)) @ ((cHOL4.bool.\/ @ (X1 @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PNEXT @ X1) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))))) @ X0) @ X4))))) @ ((cHOL4.min.= @ ((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ X4)) @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X4)))) @ X0)) @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X4)) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4))) @ (((cHOL4.Past_Temporal_Logic.PSUNTIL @ (^[X4]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (X1 @ X4))) @ (((cHOL4.Past_Temporal_Logic.PBEFORE @ (^[X4]: ((cHOL4.bool.\/ @ (X0 @ X4)) @ ((cHOL4.Past_Temporal_Logic.PSNEXT @ X2) @ X4)))) @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ X4))) @ (cHOL4.bool.~ @ (X0 @ X4))))) @ X4)))) @ X0) @ X4)))))))))))))))))))) (Tpath.path_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: cHOL4.bool.T)) @ X0)))) (Tpath.path_absrep_bijections,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.toPath @ (cHOL4.path.fromPath @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: cHOL4.bool.T) @ X1)) @ ((cHOL4.min.= @ (cHOL4.path.fromPath @ (cHOL4.path.toPath @ X1))) @ X1)))))) (Tpath.first_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.first @ X0)) @ (cHOL4.pair.FST @ (cHOL4.path.fromPath @ X0)))))) (Tpath.stopped_at_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.stopped_at @ X0)) @ (cHOL4.path.toPath @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.llist.LNIL)))))) (Tpath.pcons_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.pcons @ X0) @ X1) @ X2)) @ (cHOL4.path.toPath @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.llist.LCONS @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.path.first @ X2))) @ (cHOL4.pair.SND @ (cHOL4.path.fromPath @ X2))))))))))))) (Tpath.finite_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.finite @ X0)) @ (cHOL4.llist.LFINITE @ (cHOL4.pair.SND @ (cHOL4.path.fromPath @ X0))))))) (Tpath.last_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.last @ (cHOL4.path.stopped_at @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.last @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ (cHOL4.path.last @ X2)))))))))) (Tpath.pmap_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.pmap @ X0) @ X1) @ X2)) @ (cHOL4.path.toPath @ (((cHOL4.pair.## @ X0) @ (cHOL4.llist.LMAP @ ((cHOL4.pair.## @ X1) @ X0))) @ (cHOL4.path.fromPath @ X2))))))))))) (Tpath.tail_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.tail @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ X2)))))))) (Tpath.first_label_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.first_label @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ X1)))))))) (Tpath.length_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.length @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.path.finite @ X0)) @ (cHOL4.option.SOME @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ (cHOL4.option.THE @ (cHOL4.llist.toList @ (cHOL4.pair.SND @ (cHOL4.path.fromPath @ X0)))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.option.NONE))))) (Tpath.el_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.el @ cHOL4.num.0) @ X0)) @ (cHOL4.path.first @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.el @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.path.el @ X1) @ (cHOL4.path.tail @ X0))))))))) (Tpath.nth_label_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.nth_label @ cHOL4.num.0) @ X0)) @ (cHOL4.path.first_label @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.nth_label @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.path.nth_label @ X1) @ (cHOL4.path.tail @ X0))))))))) (Tpath.pconcat_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.pconcat @ X0) @ X1) @ X2)) @ (cHOL4.path.toPath @ ((cHOL4.pair.|comma| @ (cHOL4.path.first @ X0)) @ ((cHOL4.llist.LAPPEND @ (cHOL4.pair.SND @ (cHOL4.path.fromPath @ X0))) @ ((cHOL4.llist.LCONS @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.path.first @ X2))) @ (cHOL4.pair.SND @ (cHOL4.path.fromPath @ X2)))))))))))))) (Tpath.PL_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.PL @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.min.==> @ (cHOL4.path.finite @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.option.THE @ (cHOL4.path.length @ X0))))))))))) (Tpath.firstP_at_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.firstP_at @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.bool./\ @ (X0 @ ((cHOL4.path.el @ X2) @ X1))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (cHOL4.bool.~ @ (X0 @ ((cHOL4.path.el @ X3) @ X1)))))))))))))))) (Tpath.exists_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.exists @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.path.firstP_at @ X0) @ X1) @ X2))))))))) (Tpath.every_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.every @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.path.exists @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1)))))))) (Tpath.mem_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.mem @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.path.el @ X2) @ X1))))))))))) (Tpath.drop_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.drop @ cHOL4.num.0) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.drop @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.path.drop @ X1) @ (cHOL4.path.tail @ X0))))))))) (Tpath.take_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.take @ cHOL4.num.0) @ X0)) @ (cHOL4.path.stopped_at @ (cHOL4.path.first @ X0)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.take @ (cHOL4.num.SUC @ X1)) @ X0)) @ (((cHOL4.path.pcons @ (cHOL4.path.first @ X0)) @ (cHOL4.path.first_label @ X0)) @ ((cHOL4.path.take @ X1) @ (cHOL4.path.tail @ X0)))))))))) (Tpath.seg_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.seg @ X0) @ X1) @ X2)) @ ((cHOL4.path.take @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ ((cHOL4.path.drop @ X0) @ X2)))))))))) (Tpath.labels_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.labels @ (cHOL4.path.stopped_at @ X0))) @ cHOL4.llist.LNIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.labels @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ ((cHOL4.llist.LCONS @ X1) @ (cHOL4.path.labels @ X2))))))))))) (Tpath.is_stopped_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.is_stopped @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.path.stopped_at @ X1)))))))) (Tpath.filter_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.min.= @ ((cHOL4.path.filter @ X0) @ (cHOL4.path.stopped_at @ X1))) @ (cHOL4.path.stopped_at @ X1)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.path.filter @ X0) @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ (((cHOL4.bool.COND @ (X0 @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.path.exists @ X0) @ X3)) @ (((cHOL4.path.pcons @ X1) @ X2) @ ((cHOL4.path.filter @ X0) @ X3))) @ (cHOL4.path.stopped_at @ X1))) @ ((cHOL4.path.filter @ X0) @ X3))))))))))))) (Tpath.pgenerate_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.pgenerate @ X0) @ X1)) @ (((cHOL4.path.pcons @ (X0 @ cHOL4.num.0)) @ (X1 @ cHOL4.num.0)) @ ((cHOL4.path.pgenerate @ ((cHOL4.combin.o @ X0) @ cHOL4.num.SUC)) @ ((cHOL4.combin.o @ X1) @ cHOL4.num.SUC))))))))) (Tpath.okpath_f_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.okpath_f @ X0) @ X1)) @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ (cHOL4.path.stopped_at @ X2)) @ ((cHOL4.bool.IN @ X2) @ cHOL4.pred_set.UNIV))))) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ (((cHOL4.path.pcons @ X2) @ X3) @ X4)) @ ((cHOL4.bool./\ @ (((X0 @ X2) @ X3) @ (cHOL4.path.first @ X4))) @ ((cHOL4.bool.IN @ X4) @ X1)))))))))))))))) (Tpath.okpath_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.okpath @ X0)) @ (cHOL4.fixedPoint.gfp @ (cHOL4.path.okpath_f @ X0)))))) (Tpath.plink_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.plink @ (cHOL4.path.stopped_at @ X0)) @ X1)) @ X1)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.path.plink @ (((cHOL4.path.pcons @ X0) @ X2) @ X3)) @ X4)) @ (((cHOL4.path.pcons @ X0) @ X2) @ ((cHOL4.path.plink @ X3) @ X4))))))))))))) (Tpath.SN_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.SN @ X0)) @ (cHOL4.relation.WF @ (^[X1]: (^[X2]: (cHOL4.bool.? @ (^[X3]: (((X0 @ X2) @ X3) @ X1)))))))))) (Tpath.unfold_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.unfold @ X0) @ X1) @ X2)) @ (cHOL4.path.toPath @ ((cHOL4.pair.|comma| @ (X0 @ X2)) @ ((cHOL4.llist.LUNFOLD @ (^[X2]: ((cHOL4.option.OPTION_MAP @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ (X0 @ X3))))))) @ (X1 @ X2)))) @ X2))))))))))) (Tpath.trace_machine_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.path.trace_machine @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ (X0 @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))) @ ((cHOL4.min.= @ X3) @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))))))))))) (Tpath.parallel_comp_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((((cHOL4.path.parallel_comp @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ ((cHOL4.bool./\ @ (((X0 @ X2) @ X4) @ X5)) @ (((X1 @ X3) @ X4) @ X6)))))))))))))))))) (Tpath.path_rep_bijections_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.toPath @ (cHOL4.path.fromPath @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.path.fromPath @ (cHOL4.path.toPath @ X1))) @ X1))))) (Tpath.toPath_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.path.toPath @ X0)) @ (cHOL4.path.toPath @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpath.fromPath_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.path.fromPath @ X0)) @ (cHOL4.path.fromPath @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpath.fromPath_onto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.path.fromPath @ X1))))))) (Tpath.toPath_onto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.path.toPath @ X1))))))) (Tpath.stopped_at_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.path.stopped_at @ X0)) @ (cHOL4.path.stopped_at @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpath.pcons_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.path.pcons @ X0) @ X1) @ X2)) @ (((cHOL4.path.pcons @ X3) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X4)) @ ((cHOL4.min.= @ X2) @ X5))))))))))))))))) (Tpath.stopped_at_not_pcons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.path.stopped_at @ X0)) @ (((cHOL4.path.pcons @ X1) @ X2) @ X3)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.path.pcons @ X1) @ X2) @ X3)) @ (cHOL4.path.stopped_at @ X0))))))))))))) (Tpath.path_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.path.stopped_at @ X1))))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (((cHOL4.path.pcons @ X1) @ X2) @ X3)))))))))))) (Tpath.FORALL_path,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.path.stopped_at @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (X0 @ (((cHOL4.path.pcons @ X2) @ X3) @ X1))))))))))))) (Tpath.EXISTS_path,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: (X0 @ (cHOL4.path.stopped_at @ X2))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X1]: (X0 @ (((cHOL4.path.pcons @ X2) @ X3) @ X1))))))))))))) (Tpath.first_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.first @ (cHOL4.path.stopped_at @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.first @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ X0))))))))) (Tpath.finite_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.finite @ (cHOL4.path.stopped_at @ X0))) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.finite @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ (cHOL4.path.finite @ X2)))))))))) (Tpath.path_bisimulation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((X2 @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X2 @ X3) @ X4)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (cHOL4.path.stopped_at @ X5))) @ ((cHOL4.min.= @ X4) @ (cHOL4.path.stopped_at @ X5)))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (((cHOL4.path.pcons @ X5) @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ (((cHOL4.path.pcons @ X5) @ X6) @ X8))) @ ((X2 @ X7) @ X8)))))))))))))))))))))))))) (Tpath.finite_path_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.path.stopped_at @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X3)) @ (X0 @ X3))) @ (X0 @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.path.finite @ X4)) @ (X0 @ X4)))))))) (Tpath.pmap_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.pmap @ X1) @ X0) @ (cHOL4.path.stopped_at @ X2))) @ (cHOL4.path.stopped_at @ (X1 @ X2)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.path.pmap @ X1) @ X0) @ (((cHOL4.path.pcons @ X2) @ X3) @ X4))) @ (((cHOL4.path.pcons @ (X1 @ X2)) @ (X0 @ X3)) @ (((cHOL4.path.pmap @ X1) @ X0) @ X4))))))))))))))) (Tpath.first_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.first @ (((cHOL4.path.pmap @ X1) @ X0) @ X2))) @ (X1 @ (cHOL4.path.first @ X2)))))))))) (Tpath.last_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.path.finite @ X2)) @ ((cHOL4.min.= @ (cHOL4.path.last @ (((cHOL4.path.pmap @ X1) @ X0) @ X2))) @ (X1 @ (cHOL4.path.last @ X2))))))))))) (Tpath.finite_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.finite @ (((cHOL4.path.pmap @ X0) @ X1) @ X2))) @ (cHOL4.path.finite @ X2))))))))) (Tpath.length_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.length @ (cHOL4.path.stopped_at @ X0))) @ (cHOL4.option.SOME @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.path.length @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ (((cHOL4.bool.COND @ (cHOL4.path.finite @ X3)) @ (cHOL4.option.SOME @ ((cHOL4.arithmetic.+ @ (cHOL4.option.THE @ (cHOL4.path.length @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.option.NONE)))))))))) (Tpath.alt_length_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.length @ (cHOL4.path.stopped_at @ X0))) @ (cHOL4.option.SOME @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.path.length @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ ((cHOL4.option.OPTION_MAP @ cHOL4.num.SUC) @ (cHOL4.path.length @ X3))))))))))) (Tpath.length_never_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.path.length @ X0)) @ (cHOL4.option.SOME @ cHOL4.num.0)))))) (Tpath.finite_length,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.path.finite @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (cHOL4.path.length @ X0)) @ (cHOL4.option.SOME @ X1)))))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.path.finite @ X0))) @ ((cHOL4.min.= @ (cHOL4.path.length @ X0)) @ cHOL4.option.NONE)))))) (Tpath.length_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.length @ (((cHOL4.path.pmap @ X0) @ X1) @ X2))) @ (cHOL4.path.length @ X2))))))))) (Tpath.el_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.el @ cHOL4.num.0) @ X0)) @ (cHOL4.path.first @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.el @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.path.el @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.tail @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.el @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.path.el @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.path.tail @ X0)))))))))) (Tpath.nth_label_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.nth_label @ cHOL4.num.0) @ X0)) @ (cHOL4.path.first_label @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.nth_label @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.path.nth_label @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.tail @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.nth_label @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.path.nth_label @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.path.tail @ X0)))))))))) (Tpath.path_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ ((cHOL4.pair.pair_CASE @ (X0 @ X2)) @ (^[X3]: (^[X4]: (((cHOL4.option.option_CASE @ X4) @ (cHOL4.path.stopped_at @ X3)) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: (((cHOL4.path.pcons @ X3) @ X6) @ (X1 @ X7)))))))))))))))))) (Tpath.pconcat_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.pconcat @ (cHOL4.path.stopped_at @ X0)) @ X1) @ X2)) @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ (((cHOL4.path.pconcat @ (((cHOL4.path.pcons @ X3) @ X4) @ X5)) @ X6) @ X7)) @ (((cHOL4.path.pcons @ X3) @ X4) @ (((cHOL4.path.pconcat @ X5) @ X6) @ X7))))))))))))))) (Tpath.pconcat_eq_stopped,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.path.pconcat @ X0) @ X1) @ X2)) @ (cHOL4.path.stopped_at @ X3)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.path.stopped_at @ X3)) @ (((cHOL4.path.pconcat @ X0) @ X1) @ X2))))))))))))) (Tpath.pconcat_eq_pcons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.path.pconcat @ X3) @ X4) @ X5)) @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (cHOL4.path.stopped_at @ X0))) @ ((cHOL4.min.= @ X2) @ X5)))) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (((cHOL4.path.pcons @ X0) @ X1) @ X6))) @ ((cHOL4.min.= @ X2) @ (((cHOL4.path.pconcat @ X6) @ X4) @ X5)))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.path.pcons @ X0) @ X1) @ X2)) @ (((cHOL4.path.pconcat @ X3) @ X4) @ X5))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (cHOL4.path.stopped_at @ X0))) @ ((cHOL4.min.= @ X2) @ X5)))) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ (((cHOL4.path.pcons @ X0) @ X1) @ X6))) @ ((cHOL4.min.= @ X2) @ (((cHOL4.path.pconcat @ X6) @ X4) @ X5))))))))))))))))))))) (Tpath.finite_pconcat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.finite @ (((cHOL4.path.pconcat @ X0) @ X1) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X0)) @ (cHOL4.path.finite @ X2)))))))))) (Tpath.infinite_PL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.path.finite @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0)))))))) (Tpath.PL_pcons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.PL @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ ((cHOL4.pred_set.IMAGE @ cHOL4.num.SUC) @ (cHOL4.path.PL @ X2))))))))))) (Tpath.PL_stopped_at,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.PL @ (cHOL4.path.stopped_at @ X0))) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))))) (Tpath.PL_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.PL @ (cHOL4.path.stopped_at @ X0))) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.PL @ (((cHOL4.path.pcons @ X0) @ X1) @ X2))) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ ((cHOL4.pred_set.IMAGE @ cHOL4.num.SUC) @ (cHOL4.path.PL @ X2)))))))))))) (Tpath.PL_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ cHOL4.num.0) @ (cHOL4.path.PL @ X0))))) (Tpath.PL_downward_closed,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))))))))))) (Tpath.PL_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.PL @ (((cHOL4.path.pmap @ X2) @ X1) @ X0))) @ (cHOL4.path.PL @ X0))))))))) (Tpath.el_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X3))) @ ((cHOL4.min.= @ ((cHOL4.path.el @ X2) @ (((cHOL4.path.pmap @ X1) @ X0) @ X3))) @ (X1 @ ((cHOL4.path.el @ X2) @ X3))))))))))))) (Tpath.nth_label_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ (cHOL4.num.SUC @ X2)) @ (cHOL4.path.PL @ X3))) @ ((cHOL4.min.= @ ((cHOL4.path.nth_label @ X2) @ (((cHOL4.path.pmap @ X1) @ X0) @ X3))) @ (X0 @ ((cHOL4.path.nth_label @ X2) @ X3))))))))))))) (Tpath.firstP_at_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.firstP_at @ X0) @ (cHOL4.path.stopped_at @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (X0 @ X1)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.path.firstP_at @ X0) @ (((cHOL4.path.pcons @ X1) @ X3) @ X4)) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (X0 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X1))) @ (((cHOL4.path.firstP_at @ X0) @ X4) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))) (Tpath.firstP_at_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.path.firstP_at @ X0) @ X1) @ cHOL4.num.0)) @ (X0 @ (cHOL4.path.first @ X1)))))))) (Tpath.exists_thm,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.exists @ X0) @ (cHOL4.path.stopped_at @ X1))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.path.exists @ X0) @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ ((cHOL4.bool.\/ @ (X0 @ X1)) @ ((cHOL4.path.exists @ X0) @ X3))))))))))))) (Tpath.every_thm,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.every @ X0) @ (cHOL4.path.stopped_at @ X1))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.path.every @ X0) @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.path.every @ X0) @ X3))))))))))))) (Tpath.not_every,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.path.every @ X0) @ X1))) @ ((cHOL4.path.exists @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1))))))) (Tpath.not_exists,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.path.exists @ X0) @ X1))) @ ((cHOL4.path.every @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1))))))) (Tpath.exists_el,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.exists @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))) @ (X0 @ ((cHOL4.path.el @ X2) @ X1))))))))))) (Tpath.every_el,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.every @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))) @ (X0 @ ((cHOL4.path.el @ X2) @ X1))))))))))) (Tpath.every_coinduction,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ (cHOL4.path.stopped_at @ X2))) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X0 @ (((cHOL4.path.pcons @ X2) @ X3) @ X4))) @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X4))))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X0 @ X4)) @ ((cHOL4.path.every @ X1) @ X4)))))))))) (Tpath.exists_induction,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ (cHOL4.path.stopped_at @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ (((cHOL4.path.pcons @ X2) @ X3) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X1 @ X4)) @ (X1 @ (((cHOL4.path.pcons @ X2) @ X3) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.path.exists @ X0) @ X4)) @ (X1 @ X4)))))))))) (Tpath.mem_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.mem @ X1) @ (cHOL4.path.stopped_at @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.path.mem @ X5) @ (((cHOL4.path.pcons @ X2) @ X3) @ X4))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X5) @ X2)) @ ((cHOL4.path.mem @ X5) @ X4))))))))))))) (Tpath.drop_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.drop @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.drop @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.path.drop @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.tail @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.drop @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.path.drop @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.path.tail @ X0)))))))))) (Tpath.numeral_drop,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.drop @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ X1)) @ ((cHOL4.path.drop @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.tail @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.drop @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ X1)) @ ((cHOL4.path.drop @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.path.tail @ X1))))))))) (Tpath.finite_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0))) @ ((cHOL4.min.= @ (cHOL4.path.finite @ ((cHOL4.path.drop @ X1) @ X0))) @ (cHOL4.path.finite @ X0)))))))) (Tpath.length_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0))) @ ((cHOL4.min.= @ (cHOL4.path.length @ ((cHOL4.path.drop @ X1) @ X0))) @ (((cHOL4.option.option_CASE @ (cHOL4.path.length @ X0)) @ cHOL4.option.NONE) @ (^[X2]: (cHOL4.option.SOME @ ((cHOL4.arithmetic.- @ X2) @ X1))))))))))) (Tpath.PL_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0))) @ ((cHOL4.min.= @ (cHOL4.path.PL @ ((cHOL4.path.drop @ X1) @ X0))) @ ((cHOL4.pred_set.IMAGE @ (^[X2]: ((cHOL4.arithmetic.- @ X2) @ X1))) @ (cHOL4.path.PL @ X0))))))))) (Tpath.IN_PL_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X2))) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ ((cHOL4.path.drop @ X0) @ X2)))) @ ((cHOL4.bool.IN @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.path.PL @ X2))))))))))) (Tpath.first_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ (cHOL4.path.first @ ((cHOL4.path.drop @ X0) @ X1))) @ ((cHOL4.path.el @ X0) @ X1)))))))) (Tpath.first_label_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ (cHOL4.path.first_label @ ((cHOL4.path.drop @ X0) @ X1))) @ ((cHOL4.path.nth_label @ X0) @ X1)))))))) (Tpath.tail_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ (cHOL4.path.tail @ ((cHOL4.path.drop @ X0) @ X1))) @ ((cHOL4.path.drop @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Tpath.el_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.path.PL @ X2))) @ ((cHOL4.min.= @ ((cHOL4.path.el @ X0) @ ((cHOL4.path.drop @ X1) @ X2))) @ ((cHOL4.path.el @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)))))))))) (Tpath.nth_label_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ (cHOL4.path.PL @ X2))) @ ((cHOL4.min.= @ ((cHOL4.path.nth_label @ X0) @ ((cHOL4.path.drop @ X1) @ X2))) @ ((cHOL4.path.nth_label @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)))))))))) (Tpath.take_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.take @ cHOL4.num.0) @ X0)) @ (cHOL4.path.stopped_at @ (cHOL4.path.first @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.take @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ (((cHOL4.path.pcons @ (cHOL4.path.first @ X0)) @ (cHOL4.path.first_label @ X0)) @ ((cHOL4.path.take @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.tail @ X0))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.path.take @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ (((cHOL4.path.pcons @ (cHOL4.path.first @ X0)) @ (cHOL4.path.first_label @ X0)) @ ((cHOL4.path.take @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.path.tail @ X0))))))))))) (Tpath.first_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.path.first @ ((cHOL4.path.take @ X1) @ X0))) @ (cHOL4.path.first @ X0))))))) (Tpath.finite_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0))) @ (cHOL4.path.finite @ ((cHOL4.path.take @ X1) @ X0)))))))) (Tpath.length_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0))) @ ((cHOL4.min.= @ (cHOL4.path.length @ ((cHOL4.path.take @ X1) @ X0))) @ (cHOL4.option.SOME @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tpath.PL_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X0))) @ ((cHOL4.min.= @ (cHOL4.path.PL @ ((cHOL4.path.take @ X1) @ X0))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.arithmetic.<= @ X2) @ X1))))))))))) (Tpath.last_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ (cHOL4.path.last @ ((cHOL4.path.take @ X0) @ X1))) @ ((cHOL4.path.el @ X0) @ X1)))))))) (Tpath.nth_label_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.path.nth_label @ X2) @ ((cHOL4.path.take @ X0) @ X1))) @ ((cHOL4.path.nth_label @ X2) @ X1)))))))))) (Tpath.singleton_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ (((cHOL4.path.seg @ X0) @ X0) @ X1)) @ (cHOL4.path.stopped_at @ ((cHOL4.path.el @ X0) @ X1))))))))) (Tpath.recursive_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X2)))) @ ((cHOL4.min.= @ (((cHOL4.path.seg @ X0) @ X1) @ X2)) @ (((cHOL4.path.pcons @ ((cHOL4.path.el @ X0) @ X2)) @ ((cHOL4.path.nth_label @ X0) @ X2)) @ (((cHOL4.path.seg @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ X2))))))))))) (Tpath.PL_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X2)))) @ ((cHOL4.min.= @ (cHOL4.path.PL @ (((cHOL4.path.seg @ X0) @ X1) @ X2))) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.arithmetic.<= @ X3) @ ((cHOL4.arithmetic.- @ X1) @ X0)))))))))))))) (Tpath.finite_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X0)))) @ (cHOL4.path.finite @ (((cHOL4.path.seg @ X1) @ X2) @ X0)))))))))) (Tpath.first_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X2)))) @ ((cHOL4.min.= @ (cHOL4.path.first @ (((cHOL4.path.seg @ X0) @ X1) @ X2))) @ ((cHOL4.path.el @ X0) @ X2)))))))))) (Tpath.last_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.path.PL @ X2)))) @ ((cHOL4.min.= @ (cHOL4.path.last @ (((cHOL4.path.seg @ X0) @ X1) @ X2))) @ ((cHOL4.path.el @ X1) @ X2)))))))))) (Tpath.firstP_at_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.path.firstP_at @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.path.firstP_at @ X0) @ X1) @ X3)) @ ((cHOL4.min.= @ X3) @ X2)))))))))))) (Tpath.is_stopped_thm,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.is_stopped @ (cHOL4.path.stopped_at @ X0))) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.path.is_stopped @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ cHOL4.bool.F))))))))) (Tpath.filter_every,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.path.exists @ X0) @ X1)) @ ((cHOL4.path.every @ X0) @ ((cHOL4.path.filter @ X0) @ X1)))))))) (Tpath.pgenerate_infinite,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (cHOL4.path.finite @ ((cHOL4.path.pgenerate @ X0) @ X1)))))))) (Tpath.pgenerate_not_stopped,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.path.stopped_at @ X2)) @ ((cHOL4.path.pgenerate @ X0) @ X1)))))))))) (Tpath.el_pgenerate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.path.el @ X0) @ ((cHOL4.path.pgenerate @ X1) @ X2))) @ (X1 @ X0))))))))) (Tpath.nth_label_pgenerate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.path.nth_label @ X0) @ ((cHOL4.path.pgenerate @ X1) @ X2))) @ (X2 @ X0))))))))) (Tpath.pgenerate_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.path.pgenerate @ X0) @ X1)) @ ((cHOL4.path.pgenerate @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tpath.pgenerate_onto,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.path.finite @ X0))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.path.pgenerate @ X1) @ X2)))))))))) (Tpath.okpath_monotone,(cHOL4.bool.! @ (^[X0]: (cHOL4.fixedPoint.monotone @ (cHOL4.path.okpath_f @ X0))))) (Tpath.okpath_co_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X1 @ (((cHOL4.path.pcons @ X2) @ X3) @ X4))) @ ((cHOL4.bool./\ @ (((X0 @ X2) @ X3) @ (cHOL4.path.first @ X4))) @ (X1 @ X4)))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X1 @ X4)) @ ((cHOL4.path.okpath @ X0) @ X4)))))))))) (Tpath.okpath_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.path.okpath @ X0) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ (cHOL4.path.stopped_at @ X2))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((cHOL4.path.pcons @ X2) @ X3) @ X4))) @ ((cHOL4.bool./\ @ (((X0 @ X2) @ X3) @ (cHOL4.path.first @ X4))) @ ((cHOL4.path.okpath @ X0) @ X4)))))))))))))))) (Tpath.okpath_thm,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.path.okpath @ X0) @ (cHOL4.path.stopped_at @ X1))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.path.okpath @ X0) @ (((cHOL4.path.pcons @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ (((X0 @ X1) @ X2) @ (cHOL4.path.first @ X3))) @ ((cHOL4.path.okpath @ X0) @ X3))))))))))))) (Tpath.finite_okpath_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.path.stopped_at @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X1) @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X4)) @ ((cHOL4.bool./\ @ (((X1 @ X2) @ X3) @ (cHOL4.path.first @ X4))) @ (X0 @ X4))))) @ (X0 @ (((cHOL4.path.pcons @ X2) @ X3) @ X4))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X1) @ X5)) @ (cHOL4.path.finite @ X5))) @ (X0 @ X5)))))))))) (Tpath.okpath_pmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X0) @ X3)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (((X0 @ X4) @ X5) @ X6)) @ (((X0 @ (X1 @ X4)) @ (X2 @ X5)) @ (X1 @ X6))))))))))) @ ((cHOL4.path.okpath @ X0) @ (((cHOL4.path.pmap @ X1) @ X2) @ X3)))))))))))) (Tpath.finite_plink,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.path.finite @ ((cHOL4.path.plink @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X0)) @ (cHOL4.path.finite @ X1)))))))) (Tpath.first_plink,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.path.last @ X0)) @ (cHOL4.path.first @ X1))) @ ((cHOL4.min.= @ (cHOL4.path.first @ ((cHOL4.path.plink @ X0) @ X1))) @ (cHOL4.path.first @ X0)))))))) (Tpath.last_plink,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X1)) @ ((cHOL4.min.= @ (cHOL4.path.last @ X0)) @ (cHOL4.path.first @ X1))))) @ ((cHOL4.min.= @ (cHOL4.path.last @ ((cHOL4.path.plink @ X0) @ X1))) @ (cHOL4.path.last @ X1)))))))) (Tpath.okpath_plink,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.path.finite @ X1)) @ ((cHOL4.min.= @ (cHOL4.path.last @ X1)) @ (cHOL4.path.first @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.path.okpath @ X0) @ ((cHOL4.path.plink @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X0) @ X1)) @ ((cHOL4.path.okpath @ X0) @ X2))))))))))) (Tpath.okpath_take,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.path.okpath @ X0) @ X1))) @ ((cHOL4.path.okpath @ X0) @ ((cHOL4.path.take @ X2) @ X1)))))))))) (Tpath.okpath_drop,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.path.okpath @ X0) @ X1))) @ ((cHOL4.path.okpath @ X0) @ ((cHOL4.path.drop @ X2) @ X1)))))))))) (Tpath.okpath_seg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.path.okpath @ X0) @ X1)))) @ ((cHOL4.path.okpath @ X0) @ (((cHOL4.path.seg @ X2) @ X3) @ X1)))))))))))) (Tpath.SN_finite_paths,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.path.SN @ X0)) @ ((cHOL4.path.okpath @ X0) @ X1))) @ (cHOL4.path.finite @ X1))))))) (Tpath.finite_paths_SN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.path.okpath @ X0) @ X1)) @ (cHOL4.path.finite @ X1))))) @ (cHOL4.path.SN @ X0))))) (Tpath.SN_finite_paths_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.SN @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.path.okpath @ X0) @ X1)) @ (cHOL4.path.finite @ X1)))))))) (Tpath.labels_LMAP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.path.labels @ X0)) @ ((cHOL4.llist.LMAP @ cHOL4.pair.FST) @ (cHOL4.pair.SND @ (cHOL4.path.fromPath @ X0))))))) (Tpath.labels_plink,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.path.labels @ ((cHOL4.path.plink @ X0) @ X1))) @ ((cHOL4.llist.LAPPEND @ (cHOL4.path.labels @ X0)) @ (cHOL4.path.labels @ X1)))))))) (Tpath.finite_labels,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.llist.LFINITE @ (cHOL4.path.labels @ X0))) @ (cHOL4.path.finite @ X0))))) (Tpath.unfold_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.path.unfold @ X0) @ X1) @ X2)) @ (((cHOL4.option.option_CASE @ (X1 @ X2)) @ (cHOL4.path.stopped_at @ (X0 @ X2))) @ (^[X3]: ((cHOL4.pair.pair_CASE @ X3) @ (^[X4]: (^[X5]: (((cHOL4.path.pcons @ (X0 @ X2)) @ X5) @ (((cHOL4.path.unfold @ X0) @ X1) @ X4))))))))))))))) (Tpath.unfold_thm2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ (((cHOL4.path.unfold @ X0) @ X1) @ X2)) @ (cHOL4.path.stopped_at @ (X0 @ X2))))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ ((cHOL4.min.= @ (((cHOL4.path.unfold @ X0) @ X1) @ X2)) @ (((cHOL4.path.pcons @ (X0 @ X2)) @ X4) @ (((cHOL4.path.unfold @ X0) @ X1) @ X3)))))))))))))))) (Tpath.labels_unfold,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.path.labels @ (((cHOL4.path.unfold @ X0) @ X1) @ X2))) @ ((cHOL4.llist.LUNFOLD @ X1) @ X2))))))))) (Tpath.okpath_unfold,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.min.= @ (X3 @ X4)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X5) @ X6))))) @ (X0 @ X5))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.min.= @ (X3 @ X4)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X5) @ X6))))) @ (((X1 @ (X2 @ X4)) @ X6) @ (X2 @ X5)))))))))))) @ ((cHOL4.path.okpath @ X1) @ (((cHOL4.path.unfold @ X2) @ X3) @ X4)))))))))))))) (Tpath.trace_machine_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X2) @ X1)) @ (cHOL4.option.SOME @ X3))) @ (X0 @ X3))))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.path.labels @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ (cHOL4.path.trace_machine @ X0)) @ X4)) @ ((cHOL4.min.= @ (cHOL4.path.first @ X4)) @ cHOL4.list.NIL))))))))))) (Tpath.trace_machine_thm2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ (cHOL4.path.trace_machine @ X2)) @ X3)) @ (X2 @ (cHOL4.path.first @ X3)))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ (cHOL4.path.labels @ X3))) @ (cHOL4.option.SOME @ X1))) @ (X2 @ ((cHOL4.list.APPEND @ (cHOL4.path.first @ X3)) @ X1))))))))))))))) (Tpath.LTAKE_labels,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ (cHOL4.path.labels @ X1))) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ (cHOL4.llist.toList @ (cHOL4.path.labels @ ((cHOL4.path.take @ X0) @ X1)))) @ (cHOL4.option.SOME @ X2))))))))))) (Tpath.drop_eq_pcons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ ((cHOL4.path.drop @ X0) @ X1)) @ (((cHOL4.path.pcons @ X2) @ X3) @ X4)))) @ ((cHOL4.bool.IN @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.PL @ X1)))))))))))))) (Tpath.okpath_parallel_comp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.path.okpath @ ((cHOL4.path.parallel_comp @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X1) @ (((cHOL4.path.pmap @ cHOL4.pair.FST) @ (^[X3]: X3)) @ X0))) @ ((cHOL4.path.okpath @ X2) @ (((cHOL4.path.pmap @ cHOL4.pair.SND) @ (^[X3]: X3)) @ X0))))))))))) (Tpath.build_pcomp_trace,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X2) @ X3)) @ ((cHOL4.min.= @ (cHOL4.path.labels @ X1)) @ (cHOL4.path.labels @ X3))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ ((cHOL4.path.parallel_comp @ X0) @ X2)) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.path.labels @ X4)) @ (cHOL4.path.labels @ X1))) @ ((cHOL4.min.= @ (cHOL4.path.first @ X4)) @ ((cHOL4.pair.|comma| @ (cHOL4.path.first @ X1)) @ (cHOL4.path.first @ X3))))))))))))))))) (Tpath.nth_label_LNTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.llist.LNTH @ X0) @ (cHOL4.path.labels @ X1))) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.path.PL @ X1))) @ ((cHOL4.min.= @ ((cHOL4.path.nth_label @ X0) @ X1)) @ X2)))))))))) (Tpath.nth_label_LTAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.llist.LTAKE @ X0) @ (cHOL4.path.labels @ X1))) @ (cHOL4.option.SOME @ X2))) @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.path.nth_label @ X3) @ X1)) @ ((cHOL4.list.EL @ X3) @ X2)))))))))))))) (Tpath.finite_path_end_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.path.finite @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.path.stopped_at @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((cHOL4.path.plink @ X2) @ (((cHOL4.path.pcons @ (cHOL4.path.last @ X2)) @ X3) @ (cHOL4.path.stopped_at @ X4))))))))))))))) (Tpath.simulation_trace_inclusion,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X5) @ X8)) @ (((X1 @ X5) @ X6) @ X7))) @ (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((X0 @ X7) @ X9)) @ (((X2 @ X8) @ X6) @ X9)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X1) @ X3)) @ ((X0 @ (cHOL4.path.first @ X3)) @ X4)))) @ (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.path.okpath @ X2) @ X10)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.path.labels @ X3)) @ (cHOL4.path.labels @ X10))) @ ((cHOL4.min.= @ (cHOL4.path.first @ X10)) @ X4))))))))))))))))) (Tpatricia_casts.SKIP1_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia_casts.SKIP1 @ ((cHOL4.list.CONS @ X0) @ X1))) @ X1)))))) (Tpatricia_casts.string_to_num_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.string_to_num @ X0)) @ (((cHOL4.ASCIInumbers.s2n @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ cHOL4.string.ORD) @ ((cHOL4.list.CONS @ (cHOL4.string.CHR @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))) (Tpatricia_casts.num_to_string_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.num_to_string @ X0)) @ (cHOL4.patricia_casts.SKIP1 @ (((cHOL4.ASCIInumbers.n2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ cHOL4.string.CHR) @ X0)))))) (Tpatricia_casts.PEEKs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.PEEKs @ X0) @ X1)) @ ((cHOL4.patricia.PEEK @ X0) @ (cHOL4.patricia_casts.string_to_num @ X1)))))))) (Tpatricia_casts.FINDs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.FINDs @ X0) @ X1)) @ (cHOL4.option.THE @ ((cHOL4.patricia_casts.PEEKs @ X0) @ X1)))))))) (Tpatricia_casts.ADDs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.ADDs @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.patricia_casts.string_to_num @ X1)) @ X2)))))))))) (Tpatricia_casts.ADD_LISTs_def,((cHOL4.min.= @ cHOL4.patricia_casts.ADD_LISTs) @ (cHOL4.list.FOLDL @ cHOL4.patricia_casts.ADDs))) (Tpatricia_casts.REMOVEs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.REMOVEs @ X0) @ X1)) @ ((cHOL4.patricia.REMOVE @ X0) @ (cHOL4.patricia_casts.string_to_num @ X1)))))))) (Tpatricia_casts.TRAVERSEs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.TRAVERSEs @ X0)) @ ((cHOL4.list.MAP @ cHOL4.patricia_casts.num_to_string) @ (cHOL4.patricia.TRAVERSE @ X0)))))) (Tpatricia_casts.KEYSs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.KEYSs @ X0)) @ ((cHOL4.sorting.QSORT @ cHOL4.string.string_lt) @ (cHOL4.patricia_casts.TRAVERSEs @ X0)))))) (Tpatricia_casts.IN_PTREEs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.IN_PTREEs @ X0) @ X1)) @ ((cHOL4.patricia.IN_PTREE @ (cHOL4.patricia_casts.string_to_num @ X0)) @ X1))))))) (Tpatricia_casts.INSERT_PTREEs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.INSERT_PTREEs @ X0) @ X1)) @ ((cHOL4.patricia.INSERT_PTREE @ (cHOL4.patricia_casts.string_to_num @ X0)) @ X1))))))) (Tpatricia_casts.STRINGSET_OF_PTREE_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.STRINGSET_OF_PTREE @ X0)) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia_casts.TRAVERSEs @ X0)))))) (Tpatricia_casts.PTREE_OF_STRINGSET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.PTREE_OF_STRINGSET @ X0) @ X1)) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ ((cHOL4.pred_set.IMAGE @ cHOL4.patricia_casts.string_to_num) @ X1)))))))) (Tpatricia_casts.word_ptree_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ (((^[X3]: (^[X4]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ (^[X5]: cHOL4.ind_type.BOTTOM)))) @ X3) @ X4))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tpatricia_casts.word_ptree_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.word_ptree_CASE @ ((cHOL4.patricia_casts.Word_ptree @ X0) @ X1)) @ X2)) @ ((X2 @ X0) @ X1))))))))) (Tpatricia_casts.word_ptree_size_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.patricia_casts.word_ptree_size @ X0) @ X1) @ ((cHOL4.patricia_casts.Word_ptree @ X2) @ X3))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.patricia.ptree_size @ X1) @ X3)))))))))))) (Tpatricia_casts.THE_PTREE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia_casts.THE_PTREE @ ((cHOL4.patricia_casts.Word_ptree @ X0) @ X1))) @ X1)))))) (Tpatricia_casts.SOME_PTREE_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.SOME_PTREE @ X0)) @ ((cHOL4.patricia_casts.Word_ptree @ (cHOL4.combin.K @ cHOL4.one.one)) @ X0))))) (Tpatricia_casts.WordEmpty_def,((cHOL4.min.= @ cHOL4.patricia_casts.WordEmpty) @ (cHOL4.patricia_casts.SOME_PTREE @ cHOL4.patricia.Empty))) (Tpatricia_casts.PEEKw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.PEEKw @ X0) @ X1)) @ ((cHOL4.patricia.PEEK @ (cHOL4.patricia_casts.THE_PTREE @ X0)) @ (cHOL4.words.w2n @ X1)))))))) (Tpatricia_casts.FINDw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.FINDw @ X0) @ X1)) @ (cHOL4.option.THE @ ((cHOL4.patricia_casts.PEEKw @ X0) @ X1)))))))) (Tpatricia_casts.ADDw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.ADDw @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (cHOL4.patricia_casts.SOME_PTREE @ ((cHOL4.patricia.ADD @ (cHOL4.patricia_casts.THE_PTREE @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.words.w2n @ X1)) @ X2))))))))))) (Tpatricia_casts.ADD_LISTw_def,((cHOL4.min.= @ cHOL4.patricia_casts.ADD_LISTw) @ (cHOL4.list.FOLDL @ cHOL4.patricia_casts.ADDw))) (Tpatricia_casts.REMOVEw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.REMOVEw @ X0) @ X1)) @ (cHOL4.patricia_casts.SOME_PTREE @ ((cHOL4.patricia.REMOVE @ (cHOL4.patricia_casts.THE_PTREE @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Tpatricia_casts.TRAVERSEw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.TRAVERSEw @ X0)) @ ((cHOL4.list.MAP @ cHOL4.words.n2w) @ (cHOL4.patricia.TRAVERSE @ (cHOL4.patricia_casts.THE_PTREE @ X0))))))) (Tpatricia_casts.KEYSw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.KEYSw @ X0)) @ ((cHOL4.sorting.QSORT @ cHOL4.words.word_lo) @ (cHOL4.patricia_casts.TRAVERSEw @ X0)))))) (Tpatricia_casts.TRANSFORMw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.TRANSFORMw @ X0) @ X1)) @ (cHOL4.patricia_casts.SOME_PTREE @ ((cHOL4.patricia.TRANSFORM @ X0) @ (cHOL4.patricia_casts.THE_PTREE @ X1))))))))) (Tpatricia_casts.EVERY_LEAFw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.EVERY_LEAFw @ X0) @ X1)) @ ((cHOL4.patricia.EVERY_LEAF @ (^[X2]: (^[X3]: ((X0 @ (cHOL4.words.n2w @ X2)) @ X3)))) @ (cHOL4.patricia_casts.THE_PTREE @ X1)))))))) (Tpatricia_casts.EXISTS_LEAFw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.EXISTS_LEAFw @ X0) @ X1)) @ ((cHOL4.patricia.EXISTS_LEAF @ (^[X2]: (^[X3]: ((X0 @ (cHOL4.words.n2w @ X2)) @ X3)))) @ (cHOL4.patricia_casts.THE_PTREE @ X1)))))))) (Tpatricia_casts.SIZEw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.SIZEw @ X0)) @ (cHOL4.patricia.SIZE @ (cHOL4.patricia_casts.THE_PTREE @ X0)))))) (Tpatricia_casts.DEPTHw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.DEPTHw @ X0)) @ (cHOL4.patricia.DEPTH @ (cHOL4.patricia_casts.THE_PTREE @ X0)))))) (Tpatricia_casts.IN_PTREEw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.IN_PTREEw @ X0) @ X1)) @ ((cHOL4.patricia.IN_PTREE @ (cHOL4.words.w2n @ X0)) @ (cHOL4.patricia_casts.THE_PTREE @ X1)))))))) (Tpatricia_casts.INSERT_PTREEw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.INSERT_PTREEw @ X0) @ X1)) @ (cHOL4.patricia_casts.SOME_PTREE @ ((cHOL4.patricia.INSERT_PTREE @ (cHOL4.words.w2n @ X0)) @ (cHOL4.patricia_casts.THE_PTREE @ X1))))))))) (Tpatricia_casts.WORDSET_OF_PTREE_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.WORDSET_OF_PTREE @ X0)) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia_casts.TRAVERSEw @ X0)))))) (Tpatricia_casts.UNION_PTREEw_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.UNION_PTREEw @ X0) @ X1)) @ (cHOL4.patricia_casts.SOME_PTREE @ ((cHOL4.patricia.UNION_PTREE @ (cHOL4.patricia_casts.THE_PTREE @ X0)) @ (cHOL4.patricia_casts.THE_PTREE @ X1))))))))) (Tpatricia_casts.PTREE_OF_WORDSET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.PTREE_OF_WORDSET @ X0) @ X1)) @ (cHOL4.patricia_casts.SOME_PTREE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ (cHOL4.patricia_casts.THE_PTREE @ X0)) @ ((cHOL4.pred_set.IMAGE @ cHOL4.words.w2n) @ X1))))))))) (Tpatricia_casts.datatype_word_ptree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (X0 @ cHOL4.patricia_casts.Word_ptree))))) (Tpatricia_casts.word_ptree_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.patricia_casts.Word_ptree @ X0) @ X1)) @ ((cHOL4.patricia_casts.Word_ptree @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) (Tpatricia_casts.word_ptree_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ ((cHOL4.patricia_casts.Word_ptree @ X4) @ X5))) @ ((cHOL4.min.= @ ((X3 @ X4) @ X5)) @ ((X0 @ X4) @ X5))))))))) @ ((cHOL4.min.= @ ((cHOL4.patricia_casts.word_ptree_CASE @ X1) @ X3)) @ ((cHOL4.patricia_casts.word_ptree_CASE @ X2) @ X0)))))))))))) (Tpatricia_casts.word_ptree_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.patricia_casts.Word_ptree @ X1) @ X2))))))))) (Tpatricia_casts.word_ptree_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ ((cHOL4.patricia_casts.Word_ptree @ X2) @ X3))) @ ((X0 @ X2) @ X3))))))))))) (Tpatricia_casts.word_ptree_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.patricia_casts.Word_ptree @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tpatricia_casts.ADD_INSERT_STRING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.ADDs @ X2) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.patricia_casts.ADDs @ X2) @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.one.one)))))))))) (Tpatricia_casts.l2n_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.numposrep.l2n @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.numposrep.l2n @ X0) @ X2))))))))))) (Tpatricia_casts.l2n_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.prim_rec.< @ ((cHOL4.numposrep.l2n @ X0) @ X1)) @ ((cHOL4.arithmetic.EXP @ X0) @ (cHOL4.list.LENGTH @ X1))))))))) (Tpatricia_casts.l2n_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ X0)) @ X1)) @ ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ X0)) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.numposrep.l2n @ X0) @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.list.NIL)))) @ ((cHOL4.numposrep.l2n @ X0) @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.list.NIL))))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tpatricia_casts.EVERY_MAP_ORD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.list.EVERY @ (cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.list.MAP @ cHOL4.string.ORD) @ X0))))) (Tpatricia_casts.MAP_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X3)) @ (X0 @ X4))) @ ((cHOL4.min.= @ X3) @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ X1)) @ ((cHOL4.list.MAP @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tpatricia_casts.REVERSE_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpatricia_casts.string_to_num_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.patricia_casts.string_to_num @ X0)) @ (cHOL4.patricia_casts.string_to_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpatricia_casts.IMAGE_string_to_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.DIV @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ ((cHOL4.logroot.LOG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ X0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.IMAGE @ cHOL4.patricia_casts.string_to_num) @ cHOL4.pred_set.UNIV)))))) (Tpatricia_casts.string_to_num_num_to_string,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.IMAGE @ cHOL4.patricia_casts.string_to_num) @ cHOL4.pred_set.UNIV))) @ ((cHOL4.min.= @ (cHOL4.patricia_casts.string_to_num @ (cHOL4.patricia_casts.num_to_string @ X0))) @ X0))))) (Tpatricia_casts.num_to_string_string_to_num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.num_to_string @ (cHOL4.patricia_casts.string_to_num @ X0))) @ X0)))) (Tpatricia_casts.ADD_INSERT_WORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia_casts.ADDw @ X2) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.patricia_casts.ADDw @ X2) @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.one.one)))))))))) (Tpatricia_casts.THE_PTREE_SOME_PTREE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia_casts.THE_PTREE @ (cHOL4.patricia_casts.SOME_PTREE @ X0))) @ X0)))) (Tpatricia.ptree_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB))) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ (((^[X4]: (^[X5]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ cHOL4.bool.ARB))) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ X4) @ X5))))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((((^[X4]: (^[X6]: (^[X7]: (^[X8]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ X6))) @ ((cHOL4.ind_type.FCONS @ X7) @ ((cHOL4.ind_type.FCONS @ X8) @ (^[X3]: cHOL4.ind_type.BOTTOM)))))))) @ X4) @ X6) @ X7) @ X8))) @ ((cHOL4.bool./\ @ (X2 @ X7)) @ (X2 @ X8)))))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tpatricia.ptree_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.patricia.ptree_CASE @ cHOL4.patricia.Empty) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.patricia.ptree_CASE @ ((cHOL4.patricia.Leaf @ X3) @ X4)) @ X0) @ X1) @ X2)) @ ((X1 @ X3) @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.patricia.ptree_CASE @ ((((cHOL4.patricia.Branch @ X3) @ X5) @ X6) @ X7)) @ X0) @ X1) @ X2)) @ ((((X2 @ X3) @ X5) @ X6) @ X7))))))))))))))))))) (Tpatricia.ptree_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.ptree_size @ X0) @ cHOL4.patricia.Empty)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.ptree_size @ X0) @ ((cHOL4.patricia.Leaf @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ X1) @ (X0 @ X2))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.patricia.ptree_size @ X0) @ ((((cHOL4.patricia.Branch @ X1) @ X3) @ X4) @ X5))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ ((cHOL4.patricia.ptree_size @ X0) @ X4)) @ ((cHOL4.patricia.ptree_size @ X0) @ X5))))))))))))))))))) (Tpatricia.BRANCHING_BIT_tupled_primitive_def,((cHOL4.min.= @ cHOL4.patricia.BRANCHING_BIT_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X2)) @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ X2) @ X1)))) @ ((X0 @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.DIV2 @ X2)) @ (cHOL4.arithmetic.DIV2 @ X1))) @ ((cHOL4.pair.|comma| @ X2) @ X1))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X2)) @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ X2) @ X1))) @ cHOL4.num.0) @ (cHOL4.num.SUC @ (X3 @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.DIV2 @ X2)) @ (cHOL4.arithmetic.DIV2 @ X1)))))))))))))) (Tpatricia.BRANCHING_BIT_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.BRANCHING_BIT @ X0) @ X1)) @ (cHOL4.patricia.BRANCHING_BIT_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tpatricia.PEEK_tupled_primitive_def,((cHOL4.min.= @ cHOL4.patricia.PEEK_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X5) @ X4)) @ X3) @ X2)) @ X4)) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X1) @ X5) @ X3) @ X2)) @ X4)))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X8]: (^[X4]: ((((cHOL4.patricia.ptree_CASE @ X8) @ (cHOL4.combin.I @ cHOL4.option.NONE)) @ (^[X9]: (^[X10]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ X9)) @ (cHOL4.option.SOME @ X10)) @ cHOL4.option.NONE))))) @ (^[X1]: (^[X5]: (^[X3]: (^[X2]: (cHOL4.combin.I @ (X6 @ ((cHOL4.pair.|comma| @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X5) @ X4)) @ X3) @ X2)) @ X4)))))))))))))))) (Tpatricia.PEEK_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ X0) @ X1)) @ (cHOL4.patricia.PEEK_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tpatricia.JOIN_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.patricia.JOIN @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X4) @ X0)) @ ((((cHOL4.patricia.Branch @ ((cHOL4.bit.MOD_2EXP @ X4) @ X0)) @ X4) @ X1) @ X3)) @ ((((cHOL4.patricia.Branch @ ((cHOL4.bit.MOD_2EXP @ X4) @ X0)) @ X4) @ X3) @ X1)))) @ ((cHOL4.patricia.BRANCHING_BIT @ X0) @ X2)))))))))))) (Tpatricia.ADD_tupled_primitive_def,((cHOL4.min.= @ cHOL4.patricia.ADD_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X6) @ X5) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X6) @ X5)))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ X2))) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X4) @ X6) @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ X5) @ X2))))))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X6) @ X5) @ X4)) @ ((cHOL4.bit.BIT @ X6) @ X5))) @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X5) @ X2))) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X4) @ X6) @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ X5) @ X2))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: ((cHOL4.pair.pair_CASE @ X10) @ (^[X5]: (^[X2]: ((((cHOL4.patricia.ptree_CASE @ X9) @ (cHOL4.combin.I @ ((cHOL4.patricia.Leaf @ X5) @ X2))) @ (^[X11]: (^[X12]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X11) @ X5)) @ ((cHOL4.patricia.Leaf @ X5) @ X2)) @ (cHOL4.patricia.JOIN @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X5) @ X2)) @ ((cHOL4.pair.|comma| @ X11) @ ((cHOL4.patricia.Leaf @ X11) @ X12)))))))))) @ (^[X4]: (^[X6]: (^[X1]: (^[X3]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ (((cHOL4.bit.MOD_2EXP_EQ @ X6) @ X5) @ X4)) @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X6) @ X5)) @ ((((cHOL4.patricia.Branch @ X4) @ X6) @ (X7 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X5) @ X2)))) @ X3)) @ ((((cHOL4.patricia.Branch @ X4) @ X6) @ X1) @ (X7 @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ X2)))))) @ (cHOL4.patricia.JOIN @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X5) @ X2)) @ ((cHOL4.pair.|comma| @ X4) @ ((((cHOL4.patricia.Branch @ X4) @ X6) @ X1) @ X3))))))))))))))))))))))) (Tpatricia.ADD_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ X0) @ X1)) @ (cHOL4.patricia.ADD_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tpatricia.BRANCH_primitive_def,((cHOL4.min.= @ cHOL4.patricia.BRANCH) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: ((((cHOL4.patricia.ptree_CASE @ X7) @ (cHOL4.combin.I @ X8)) @ (^[X9]: (^[X10]: ((((cHOL4.patricia.ptree_CASE @ X8) @ (cHOL4.combin.I @ ((cHOL4.patricia.Leaf @ X9) @ X10))) @ (^[X11]: (^[X12]: (cHOL4.combin.I @ ((((cHOL4.patricia.Branch @ X3) @ X5) @ ((cHOL4.patricia.Leaf @ X9) @ X10)) @ ((cHOL4.patricia.Leaf @ X11) @ X12)))))) @ (^[X13]: (^[X14]: (^[X15]: (^[X16]: (cHOL4.combin.I @ ((((cHOL4.patricia.Branch @ X3) @ X5) @ ((cHOL4.patricia.Leaf @ X9) @ X10)) @ ((((cHOL4.patricia.Branch @ X13) @ X14) @ X15) @ X16))))))))))) @ (^[X17]: (^[X18]: (^[X19]: (^[X20]: ((((cHOL4.patricia.ptree_CASE @ X8) @ (cHOL4.combin.I @ ((((cHOL4.patricia.Branch @ X17) @ X18) @ X19) @ X20))) @ (^[X21]: (^[X22]: (cHOL4.combin.I @ ((((cHOL4.patricia.Branch @ X3) @ X5) @ ((((cHOL4.patricia.Branch @ X17) @ X18) @ X19) @ X20)) @ ((cHOL4.patricia.Leaf @ X21) @ X22)))))) @ (^[X23]: (^[X24]: (^[X25]: (^[X26]: (cHOL4.combin.I @ ((((cHOL4.patricia.Branch @ X3) @ X5) @ ((((cHOL4.patricia.Branch @ X17) @ X18) @ X19) @ X20)) @ ((((cHOL4.patricia.Branch @ X23) @ X24) @ X25) @ X26))))))))))))))))))))))))))) (Tpatricia.REMOVE_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.REMOVE @ cHOL4.patricia.Empty) @ X0)) @ cHOL4.patricia.Empty)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.REMOVE @ ((cHOL4.patricia.Leaf @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X0)) @ cHOL4.patricia.Empty) @ ((cHOL4.patricia.Leaf @ X1) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.REMOVE @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6)) @ X0)) @ (((cHOL4.bool.COND @ (((cHOL4.bit.MOD_2EXP_EQ @ X4) @ X0) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X4) @ X0)) @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.REMOVE @ X5) @ X0)) @ X6))))) @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.patricia.REMOVE @ X6) @ X0))))))) @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6)))))))))))))))) (Tpatricia.TRAVERSE_AUX_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.TRAVERSE_AUX @ cHOL4.patricia.Empty) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.TRAVERSE_AUX @ ((cHOL4.patricia.Leaf @ X1) @ X2)) @ X0)) @ ((cHOL4.list.CONS @ X1) @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.TRAVERSE_AUX @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6)) @ X0)) @ ((cHOL4.patricia.TRAVERSE_AUX @ X5) @ ((cHOL4.patricia.TRAVERSE_AUX @ X6) @ X0)))))))))))))))) (Tpatricia.TRAVERSE_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ cHOL4.patricia.Empty)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.Leaf @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ ((((cHOL4.patricia.Branch @ X2) @ X3) @ X4) @ X5))) @ ((cHOL4.list.APPEND @ (cHOL4.patricia.TRAVERSE @ X4)) @ (cHOL4.patricia.TRAVERSE @ X5)))))))))))))) (Tpatricia.KEYS_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia.KEYS @ X0)) @ ((cHOL4.sorting.QSORT @ cHOL4.prim_rec.<) @ (cHOL4.patricia.TRAVERSE @ X0)))))) (Tpatricia.TRANSFORM_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ cHOL4.patricia.Empty)) @ cHOL4.patricia.Empty)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ ((cHOL4.patricia.Leaf @ X1) @ X2))) @ ((cHOL4.patricia.Leaf @ X1) @ (X0 @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6))) @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ ((cHOL4.patricia.TRANSFORM @ X0) @ X5)) @ ((cHOL4.patricia.TRANSFORM @ X0) @ X6)))))))))))))))) (Tpatricia.EVERY_LEAF_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ cHOL4.patricia.Empty)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ ((cHOL4.patricia.Leaf @ X1) @ X2))) @ ((X0 @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6))) @ ((cHOL4.bool./\ @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X5)) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X6)))))))))))))))) (Tpatricia.EXISTS_LEAF_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.EXISTS_LEAF @ X0) @ cHOL4.patricia.Empty)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.EXISTS_LEAF @ X0) @ ((cHOL4.patricia.Leaf @ X1) @ X2))) @ ((X0 @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.patricia.EXISTS_LEAF @ X0) @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6))) @ ((cHOL4.bool.\/ @ ((cHOL4.patricia.EXISTS_LEAF @ X0) @ X5)) @ ((cHOL4.patricia.EXISTS_LEAF @ X0) @ X6)))))))))))))))) (Tpatricia.SIZE_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ X0)) @ (cHOL4.list.LENGTH @ (cHOL4.patricia.TRAVERSE @ X0)))))) (Tpatricia.DEPTH_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.DEPTH @ cHOL4.patricia.Empty)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia.DEPTH @ ((cHOL4.patricia.Leaf @ X0) @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.patricia.DEPTH @ ((((cHOL4.patricia.Branch @ X2) @ X3) @ X4) @ X5))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.MAX @ (cHOL4.patricia.DEPTH @ X4)) @ (cHOL4.patricia.DEPTH @ X5))))))))))))))) (Tpatricia.IS_PTREE_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.IS_PTREE @ cHOL4.patricia.Empty)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.Leaf @ X0) @ X1))) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.patricia.IS_PTREE @ ((((cHOL4.patricia.Branch @ X2) @ X3) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X5)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ cHOL4.patricia.Empty))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ cHOL4.patricia.Empty))) @ ((cHOL4.bool./\ @ ((cHOL4.patricia.EVERY_LEAF @ (^[X0]: (^[X1]: ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X3) @ X0) @ X2)) @ ((cHOL4.bit.BIT @ X3) @ X0))))) @ X4)) @ ((cHOL4.patricia.EVERY_LEAF @ (^[X0]: (^[X1]: ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X3) @ X0) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X3) @ X0)))))) @ X5))))))))))))))))))) (Tpatricia.IN_PTREE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.IN_PTREE @ X0) @ X1)) @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X1) @ X0)))))))) (Tpatricia.INSERT_PTREE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.INSERT_PTREE @ X0) @ X1)) @ ((cHOL4.patricia.ADD @ X1) @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.one.one)))))))) (Tpatricia.PTREE_OF_NUMSET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (cHOL4.combin.C @ cHOL4.patricia.INSERT_PTREE)) @ X0) @ (cHOL4.list.SET_TO_LIST @ X1)))))))) (Tpatricia.NUMSET_OF_PTREE_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0)) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))))) (Tpatricia.UNION_PTREE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.UNION_PTREE @ X0) @ X1)) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ (cHOL4.patricia.NUMSET_OF_PTREE @ X1)))))))) (Tpatricia.IS_EMPTY_primitive_def,((cHOL4.min.= @ cHOL4.patricia.IS_EMPTY) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((((cHOL4.patricia.ptree_CASE @ X2) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X3]: (^[X4]: (cHOL4.combin.I @ cHOL4.bool.F)))) @ (^[X5]: (^[X6]: (^[X7]: (^[X8]: (cHOL4.combin.I @ cHOL4.bool.F))))))))))) (Tpatricia.FIND_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.FIND @ X0) @ X1)) @ (cHOL4.option.THE @ ((cHOL4.patricia.PEEK @ X0) @ X1)))))))) (Tpatricia.ADD_LIST_def,((cHOL4.min.= @ cHOL4.patricia.ADD_LIST) @ (cHOL4.list.FOLDL @ cHOL4.patricia.ADD))) (Tpatricia.datatype_ptree,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.patricia.Empty) @ cHOL4.patricia.Leaf) @ cHOL4.patricia.Branch))))) (Tpatricia.ptree_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.patricia.Leaf @ X0) @ X1)) @ ((cHOL4.patricia.Leaf @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((((cHOL4.patricia.Branch @ X0) @ X4) @ X5) @ X6)) @ ((((cHOL4.patricia.Branch @ X2) @ X7) @ X8) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X7)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X8)) @ ((cHOL4.min.= @ X6) @ X9))))))))))))))))))))))) (Tpatricia.ptree_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.patricia.Empty) @ ((cHOL4.patricia.Leaf @ X1) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.patricia.Empty) @ ((((cHOL4.patricia.Branch @ X1) @ X4) @ X3) @ X2)))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.patricia.Leaf @ X1) @ X0)) @ ((((cHOL4.patricia.Branch @ X6) @ X5) @ X3) @ X2)))))))))))))))))) (Tpatricia.ptree_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.patricia.Empty)) @ ((cHOL4.min.= @ X5) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ ((cHOL4.patricia.Leaf @ X8) @ X9))) @ ((cHOL4.min.= @ ((X6 @ X8) @ X9)) @ ((X2 @ X8) @ X9)))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ ((((cHOL4.patricia.Branch @ X8) @ X10) @ X11) @ X12))) @ ((cHOL4.min.= @ ((((X7 @ X8) @ X10) @ X11) @ X12)) @ ((((X1 @ X8) @ X10) @ X11) @ X12))))))))))))))) @ ((cHOL4.min.= @ ((((cHOL4.patricia.ptree_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.patricia.ptree_CASE @ X4) @ X0) @ X2) @ X1)))))))))))))))))))) (Tpatricia.ptree_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.patricia.Empty)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.patricia.Leaf @ X1) @ X2))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X0) @ ((((cHOL4.patricia.Branch @ X3) @ X1) @ X4) @ X5))))))))))))))) (Tpatricia.ptree_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.patricia.Empty)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (X3 @ ((cHOL4.patricia.Leaf @ X4) @ X5))) @ ((X1 @ X4) @ X5))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ (X3 @ ((((cHOL4.patricia.Branch @ X4) @ X6) @ X7) @ X8))) @ ((((((X2 @ X4) @ X6) @ X7) @ X8) @ (X3 @ X7)) @ (X3 @ X8)))))))))))))))))))))) (Tpatricia.ptree_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.patricia.Empty)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.patricia.Leaf @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (X0 @ X4))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (X0 @ ((((cHOL4.patricia.Branch @ X5) @ X1) @ X3) @ X4)))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tpatricia.BRANCHING_BIT_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X1)) @ (cHOL4.arithmetic.EVEN @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))) @ ((X0 @ (cHOL4.arithmetic.DIV2 @ X1)) @ (cHOL4.arithmetic.DIV2 @ X2)))) @ ((X0 @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Tpatricia.BRANCHING_BIT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.BRANCHING_BIT @ X1) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X1)) @ (cHOL4.arithmetic.EVEN @ X0))) @ ((cHOL4.min.= @ X1) @ X0))) @ cHOL4.num.0) @ (cHOL4.num.SUC @ ((cHOL4.patricia.BRANCHING_BIT @ (cHOL4.arithmetic.DIV2 @ X1)) @ (cHOL4.arithmetic.DIV2 @ X0)))))))))) (Tpatricia.PEEK_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.patricia.Empty) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((X0 @ ((cHOL4.patricia.Leaf @ X2) @ X3)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((X0 @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X5) @ X1)) @ X6) @ X7)) @ X1)) @ ((X0 @ ((((cHOL4.patricia.Branch @ X4) @ X5) @ X6) @ X7)) @ X1))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((X0 @ X8) @ X9))))))))) (Tpatricia.PEEK_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ cHOL4.patricia.Empty) @ X0)) @ cHOL4.option.NONE)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ ((cHOL4.patricia.Leaf @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.option.SOME @ X2)) @ cHOL4.option.NONE))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ ((((cHOL4.patricia.Branch @ X4) @ X5) @ X6) @ X3)) @ X0)) @ ((cHOL4.patricia.PEEK @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X5) @ X0)) @ X6) @ X3)) @ X0))))))))))))))) (Tpatricia.ADD_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ cHOL4.patricia.Empty) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.patricia.Leaf @ X3) @ X4)) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X6) @ X1) @ X5)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X6) @ X1)))) @ ((X0 @ X8) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X6) @ X1) @ X5)) @ ((cHOL4.bit.BIT @ X6) @ X1))) @ ((X0 @ X7) @ ((cHOL4.pair.|comma| @ X1) @ X2))))) @ ((X0 @ ((((cHOL4.patricia.Branch @ X5) @ X6) @ X7) @ X8)) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((X0 @ X9) @ ((cHOL4.pair.|comma| @ X10) @ X11)))))))))))) (Tpatricia.ADD_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ cHOL4.patricia.Empty) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.patricia.Leaf @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ ((cHOL4.patricia.Leaf @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X0)) @ ((cHOL4.patricia.Leaf @ X0) @ X1)) @ (cHOL4.patricia.JOIN @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.patricia.Leaf @ X2) @ X3)))))))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ ((((cHOL4.patricia.Branch @ X5) @ X6) @ X7) @ X4)) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (((cHOL4.bool.COND @ (((cHOL4.bit.MOD_2EXP_EQ @ X6) @ X0) @ X5)) @ (((cHOL4.bool.COND @ ((cHOL4.bit.BIT @ X6) @ X0)) @ ((((cHOL4.patricia.Branch @ X5) @ X6) @ ((cHOL4.patricia.ADD @ X7) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X4)) @ ((((cHOL4.patricia.Branch @ X5) @ X6) @ X7) @ ((cHOL4.patricia.ADD @ X4) @ ((cHOL4.pair.|comma| @ X0) @ X1))))) @ (cHOL4.patricia.JOIN @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X5) @ ((((cHOL4.patricia.Branch @ X5) @ X6) @ X7) @ X4)))))))))))))))))))))) (Tpatricia.BRANCH_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ cHOL4.patricia.Empty) @ X3))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X4) @ X5)) @ cHOL4.patricia.Empty))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X6) @ X7) @ X8) @ X9)) @ cHOL4.patricia.Empty))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X10) @ X11)) @ ((cHOL4.patricia.Leaf @ X12) @ X13)))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X16]: (cHOL4.bool.! @ (^[X17]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X10) @ X11)) @ ((((cHOL4.patricia.Branch @ X14) @ X15) @ X16) @ X17)))))))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X23]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X18) @ X19) @ X20) @ X21)) @ ((cHOL4.patricia.Leaf @ X22) @ X23)))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: (cHOL4.bool.! @ (^[X24]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X26]: (cHOL4.bool.! @ (^[X27]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X18) @ X19) @ X20) @ X21)) @ ((((cHOL4.patricia.Branch @ X24) @ X25) @ X26) @ X27)))))))))))))))))))))))))))))))) @ (cHOL4.bool.! @ (^[X28]: (cHOL4.bool.! @ (^[X29]: (cHOL4.bool.! @ (^[X30]: (cHOL4.bool.! @ (^[X31]: (X0 @ ((cHOL4.pair.|comma| @ X28) @ ((cHOL4.pair.|comma| @ X29) @ ((cHOL4.pair.|comma| @ X30) @ X31)))))))))))))))) (Tpatricia.BRANCH_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X16]: (cHOL4.bool.! @ (^[X17]: (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ cHOL4.patricia.Empty) @ X24))))) @ X24)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X3) @ X2)) @ cHOL4.patricia.Empty))))) @ ((cHOL4.patricia.Leaf @ X3) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X1) @ X0) @ X23) @ X22)) @ cHOL4.patricia.Empty))))) @ ((((cHOL4.patricia.Branch @ X1) @ X0) @ X23) @ X22))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X21) @ X20)) @ ((cHOL4.patricia.Leaf @ X15) @ X14)))))) @ ((((cHOL4.patricia.Branch @ X25) @ X26) @ ((cHOL4.patricia.Leaf @ X21) @ X20)) @ ((cHOL4.patricia.Leaf @ X15) @ X14)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.Leaf @ X21) @ X20)) @ ((((cHOL4.patricia.Branch @ X13) @ X12) @ X11) @ X10)))))) @ ((((cHOL4.patricia.Branch @ X25) @ X26) @ ((cHOL4.patricia.Leaf @ X21) @ X20)) @ ((((cHOL4.patricia.Branch @ X13) @ X12) @ X11) @ X10)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X19) @ X18) @ X17) @ X16)) @ ((cHOL4.patricia.Leaf @ X9) @ X8)))))) @ ((((cHOL4.patricia.Branch @ X25) @ X26) @ ((((cHOL4.patricia.Branch @ X19) @ X18) @ X17) @ X16)) @ ((cHOL4.patricia.Leaf @ X9) @ X8)))) @ ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X25) @ ((cHOL4.pair.|comma| @ X26) @ ((cHOL4.pair.|comma| @ ((((cHOL4.patricia.Branch @ X19) @ X18) @ X17) @ X16)) @ ((((cHOL4.patricia.Branch @ X7) @ X6) @ X5) @ X4)))))) @ ((((cHOL4.patricia.Branch @ X25) @ X26) @ ((((cHOL4.patricia.Branch @ X19) @ X18) @ X17) @ X16)) @ ((((cHOL4.patricia.Branch @ X7) @ X6) @ X5) @ X4)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Tpatricia.IS_EMPTY_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.patricia.Empty)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.patricia.Leaf @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X0 @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (X0 @ X7))))))) (Tpatricia.IS_EMPTY_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.IS_EMPTY @ cHOL4.patricia.Empty)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.IS_EMPTY @ ((cHOL4.patricia.Leaf @ X5) @ X4))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (cHOL4.patricia.IS_EMPTY @ ((((cHOL4.patricia.Branch @ X3) @ X2) @ X1) @ X0))) @ cHOL4.bool.F)))))))))))))))) (Tpatricia.BRANCHING_BIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ ((cHOL4.patricia.BRANCHING_BIT @ X0) @ X1)) @ X0)) @ ((cHOL4.bit.BIT @ ((cHOL4.patricia.BRANCHING_BIT @ X0) @ X1)) @ X1))))))))) (Tpatricia.BRANCHING_BIT_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.patricia.BRANCHING_BIT @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.arithmetic.ODD @ X0)) @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tpatricia.BRANCHING_BIT_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.patricia.BRANCHING_BIT @ X0) @ X1)) @ ((cHOL4.patricia.BRANCHING_BIT @ X1) @ X0))))))) (Tpatricia.EVERY_LEAF_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X1))) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ ((cHOL4.patricia.ADD @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (Tpatricia.MONO_EVERY_LEAF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((X1 @ X3) @ X4))))))) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X2))) @ ((cHOL4.patricia.EVERY_LEAF @ X1) @ X2))))))))) (Tpatricia.NOT_ADD_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ cHOL4.patricia.Empty))))))))) (Tpatricia.EMPTY_IS_PTREE,(cHOL4.patricia.IS_PTREE @ cHOL4.patricia.Empty)) (Tpatricia.ADD_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.ADD @ X0) @ X1)))))))) (Tpatricia.EVERY_LEAF_BRANCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)))))) @ ((cHOL4.bool./\ @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X3)) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X4)))))))))))))) (Tpatricia.EVERY_LEAF_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X1)) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ ((cHOL4.patricia.REMOVE @ X1) @ X2)))))))))) (Tpatricia.IS_PTREE_BRANCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ cHOL4.patricia.Empty)) @ ((cHOL4.min.= @ X3) @ cHOL4.patricia.Empty)))) @ ((cHOL4.bool./\ @ ((cHOL4.patricia.EVERY_LEAF @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X1) @ X4) @ X0)) @ ((cHOL4.bit.BIT @ X1) @ X4))))) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.patricia.EVERY_LEAF @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ (((cHOL4.bit.MOD_2EXP_EQ @ X1) @ X4) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X1) @ X4)))))) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X2)) @ (cHOL4.patricia.IS_PTREE @ X3))))))) @ (cHOL4.patricia.IS_PTREE @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))))) (Tpatricia.REMOVE_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.REMOVE @ X0) @ X1)))))))) (Tpatricia.PEEK_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((X0 @ X2) @ X3))))) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ X1) @ X2)) @ cHOL4.option.NONE))))))))) (Tpatricia.PEEK_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X3)) @ (cHOL4.option.SOME @ X2)) @ ((cHOL4.patricia.PEEK @ X0) @ X3))))))))))))) (Tpatricia.BRANCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.patricia.Empty)) @ X3) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.patricia.Empty)) @ X2) @ ((((cHOL4.patricia.Branch @ X0) @ X1) @ X2) @ X3))))))))))))) (Tpatricia.PEEK_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ ((cHOL4.patricia.REMOVE @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ cHOL4.option.NONE) @ ((cHOL4.patricia.PEEK @ X0) @ X2))))))))))) (Tpatricia.EVERY_LEAF_TRANSFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X0 @ X4) @ X5)) @ ((X1 @ X4) @ (X2 @ X5)))))))) @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X3))) @ ((cHOL4.patricia.EVERY_LEAF @ X1) @ ((cHOL4.patricia.TRANSFORM @ X2) @ X3)))))))))))) (Tpatricia.TRANSFORM_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ X1)) @ cHOL4.patricia.Empty)) @ ((cHOL4.min.= @ X1) @ cHOL4.patricia.Empty))))))) (Tpatricia.TRANSFORM_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X1)) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.TRANSFORM @ X0) @ X1)))))))) (Tpatricia.PEEK_TRANSFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ ((cHOL4.patricia.TRANSFORM @ X0) @ X1)) @ X2)) @ (((cHOL4.option.option_CASE @ ((cHOL4.patricia.PEEK @ X1) @ X2)) @ cHOL4.option.NONE) @ (^[X3]: (cHOL4.option.SOME @ (X0 @ X3)))))))))))) (Tpatricia.ADD_TRANSFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ ((cHOL4.patricia.ADD @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ ((cHOL4.patricia.ADD @ ((cHOL4.patricia.TRANSFORM @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ (X0 @ X3))))))))))))) (Tpatricia.TRANSFORM_BRANCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ X3) @ X4)))))) @ (cHOL4.patricia.BRANCH @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ ((cHOL4.patricia.TRANSFORM @ X0) @ X3)) @ ((cHOL4.patricia.TRANSFORM @ X0) @ X4))))))))))))))))) (Tpatricia.REMOVE_TRANSFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.TRANSFORM @ X0) @ ((cHOL4.patricia.REMOVE @ X1) @ X2))) @ ((cHOL4.patricia.REMOVE @ ((cHOL4.patricia.TRANSFORM @ X0) @ X1)) @ X2))))))))) (Tpatricia.REMOVE_ADD_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.REMOVE @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X1)) @ ((cHOL4.patricia.REMOVE @ X0) @ X1))))))))) (Tpatricia.ADD_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3)))))))))))) (Tpatricia.EVERY_LEAF_PEEK,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.patricia.EVERY_LEAF @ X0) @ X1)) @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X1) @ X2)))) @ ((X0 @ X2) @ (cHOL4.option.THE @ ((cHOL4.patricia.PEEK @ X1) @ X2))))))))))) (Tpatricia.IS_PTREE_PEEK,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ cHOL4.patricia.Empty) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ ((cHOL4.patricia.Leaf @ X1) @ X2)) @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ ((((cHOL4.patricia.Branch @ X3) @ X4) @ X5) @ X6))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.bit.BIT @ X4) @ X0)) @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X5) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bit.BIT @ X4) @ X0))) @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X6) @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (((cHOL4.bit.MOD_2EXP_EQ @ X4) @ X0) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X7) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X7) @ X3)) @ ((cHOL4.bit.BIT @ X7) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X5) @ X0)))) @ (cHOL4.bool.~ @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X6) @ X0))))))))))))))))))))))) (Tpatricia.PTREE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ X0) @ X2)) @ ((cHOL4.patricia.PEEK @ X1) @ X2))))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tpatricia.REMOVE_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.REMOVE @ ((cHOL4.patricia.REMOVE @ X0) @ X1)) @ X1)) @ ((cHOL4.patricia.REMOVE @ X0) @ X1)))))))) (Tpatricia.REMOVE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.REMOVE @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.patricia.REMOVE @ X0) @ X3)) @ ((cHOL4.patricia.ADD @ ((cHOL4.patricia.REMOVE @ X0) @ X3)) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))))) (Tpatricia.ADD_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ ((cHOL4.pair.|comma| @ X2) @ X4))) @ ((cHOL4.patricia.ADD @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X4))) @ ((cHOL4.pair.|comma| @ X1) @ X3))))))))))))))) (Tpatricia.FILTER_ALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.~ @ (X0 @ ((cHOL4.list.EL @ X2) @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ cHOL4.list.NIL))))))) (Tpatricia.TRAVERSE_TRANSFORM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.TRANSFORM @ X0) @ X1))) @ (cHOL4.patricia.TRAVERSE @ X1))))))) (Tpatricia.MEM_TRAVERSE_PEEK,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))) @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X0) @ X1))))))))) (Tpatricia.IN_NUMSET_OF_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0))) @ ((cHOL4.patricia.IN_PTREE @ X1) @ X0)))))))) (Tpatricia.ADD_LIST_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.ADD_LIST @ X0) @ X1)))))))) (Tpatricia.ADD_LIST_TO_EMPTY_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.ADD_LIST @ cHOL4.patricia.Empty) @ X0))))) (Tpatricia.PTREE_OF_NUMSET_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1)))))))) (Tpatricia.PTREE_OF_NUMSET_IS_PTREE_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ X0))))) (Tpatricia.NOT_KEY_LEFT_AND_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ ((((cHOL4.patricia.Branch @ X0) @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X2) @ X4))) @ (cHOL4.option.IS_SOME @ ((cHOL4.patricia.PEEK @ X3) @ X5))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5)))))))))))))))) (Tpatricia.ALL_DISTINCT_TRAVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.list.ALL_DISTINCT @ (cHOL4.patricia.TRAVERSE @ X0)))))) (Tpatricia.MEM_ALL_DISTINCT_IMP_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) @ ((cHOL4.sorting.PERM @ X0) @ X1))))))) (Tpatricia.MEM_TRAVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0))))))))) (Tpatricia.INSERT_PTREE_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.INSERT_PTREE @ X1) @ X0)))))))) (Tpatricia.FINITE_NUMSET_OF_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0))))) (Tpatricia.ADD_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.ADD @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X0))) @ ((cHOL4.patricia.INSERT_PTREE @ X2) @ X1))))))))) (Tpatricia.PEEK_INSERT_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.PEEK @ ((cHOL4.patricia.INSERT_PTREE @ X1) @ X0)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.option.SOME @ cHOL4.one.one)) @ ((cHOL4.patricia.PEEK @ X0) @ X2))))))))))) (Tpatricia.MEM_TRAVERSE_INSERT_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.INSERT_PTREE @ X2) @ X0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))))))))))))) (Tpatricia.PERM_INSERT_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.sorting.PERM @ (cHOL4.patricia.TRAVERSE @ (((cHOL4.list.FOLDL @ (cHOL4.combin.C @ cHOL4.patricia.INSERT_PTREE)) @ X0) @ (cHOL4.list.SET_TO_LIST @ X1)))) @ (cHOL4.list.SET_TO_LIST @ ((cHOL4.pred_set.UNION @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0)) @ X1)))))))))) (Tpatricia.IN_PTREE_OF_NUMSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.patricia.IN_PTREE @ X2) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.patricia.IN_PTREE @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpatricia.IN_PTREE_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.patricia.IN_PTREE @ X0) @ cHOL4.patricia.Empty))))) (Tpatricia.IN_PTREE_OF_NUMSET_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.patricia.IN_PTREE @ X1) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ X0))))))))) (Tpatricia.PTREE_EXTENSION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.patricia.IN_PTREE @ X2) @ X0)) @ ((cHOL4.patricia.IN_PTREE @ X2) @ X1))))))))))) (Tpatricia.PTREE_OF_NUMSET_NUMSET_OF_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ ((cHOL4.pred_set.UNION @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0)) @ X1))) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1)))))))) (Tpatricia.NUMSET_OF_PTREE_PTREE_OF_NUMSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.patricia.NUMSET_OF_PTREE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0)) @ X1)))))))) (Tpatricia.NUMSET_OF_PTREE_EMPTY,((cHOL4.min.= @ (cHOL4.patricia.NUMSET_OF_PTREE @ cHOL4.patricia.Empty)) @ cHOL4.pred_set.EMPTY)) (Tpatricia.PTREE_OF_NUMSET_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ cHOL4.pred_set.EMPTY)) @ X0)))) (Tpatricia.NUMSET_OF_PTREE_PTREE_OF_NUMSET_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.patricia.NUMSET_OF_PTREE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ X0))) @ X0))))) (Tpatricia.IN_PTREE_INSERT_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.IN_PTREE @ X2) @ ((cHOL4.patricia.INSERT_PTREE @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.patricia.IN_PTREE @ X2) @ X0))))))))))) (Tpatricia.IN_PTREE_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.IN_PTREE @ X2) @ ((cHOL4.patricia.REMOVE @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X1))) @ ((cHOL4.patricia.IN_PTREE @ X2) @ X0))))))))))) (Tpatricia.IN_PTREE_UNION_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.patricia.IN_PTREE @ X2) @ ((cHOL4.patricia.UNION_PTREE @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.patricia.IN_PTREE @ X2) @ X0)) @ ((cHOL4.patricia.IN_PTREE @ X2) @ X1))))))))))) (Tpatricia.UNION_PTREE_IS_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ (cHOL4.patricia.IS_PTREE @ ((cHOL4.patricia.UNION_PTREE @ X0) @ X1)))))))) (Tpatricia.UNION_PTREE_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.patricia.UNION_PTREE @ X0) @ X1)) @ ((cHOL4.patricia.UNION_PTREE @ X1) @ X0)))))))) (Tpatricia.UNION_PTREE_COMM_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.UNION_PTREE @ cHOL4.patricia.Empty) @ X0)) @ ((cHOL4.patricia.UNION_PTREE @ X0) @ cHOL4.patricia.Empty)))))) (Tpatricia.UNION_PTREE_EMPTY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.patricia.UNION_PTREE @ X0) @ cHOL4.patricia.Empty)) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.UNION_PTREE @ cHOL4.patricia.Empty) @ X0)) @ X0)))))) (Tpatricia.UNION_PTREE_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X1)) @ (cHOL4.patricia.IS_PTREE @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.patricia.UNION_PTREE @ X0) @ ((cHOL4.patricia.UNION_PTREE @ X1) @ X2))) @ ((cHOL4.patricia.UNION_PTREE @ ((cHOL4.patricia.UNION_PTREE @ X0) @ X1)) @ X2)))))))))) (Tpatricia.PTREE_OF_NUMSET_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1)) @ X2)))))))))) (Tpatricia.PTREE_OF_NUMSET_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1))) @ ((cHOL4.patricia.INSERT_PTREE @ X2) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1))))))))))) (Tpatricia.PTREE_OF_NUMSET_INSERT_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ ((cHOL4.pred_set.INSERT @ X1) @ X0))) @ ((cHOL4.patricia.INSERT_PTREE @ X1) @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ X0))))))))) (Tpatricia.PTREE_OF_NUMSET_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ ((cHOL4.pred_set.DELETE @ X0) @ X1))) @ ((cHOL4.patricia.REMOVE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ X0)) @ X1)))))))) (Tpatricia.TRAVERSE_AUX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ X0)) @ ((cHOL4.patricia.TRAVERSE_AUX @ X0) @ cHOL4.list.NIL))))) (Tpatricia.PTREE_TRAVERSE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X1))))))) @ ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ X0)) @ (cHOL4.patricia.TRAVERSE @ X1))))))))) (Tpatricia.QSORT_MEM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.sorting.QSORT @ X2) @ X1)) @ ((cHOL4.sorting.QSORT @ X2) @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X0))))))))))))) (Tpatricia.KEYS_PEEK,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.patricia.IS_PTREE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.patricia.KEYS @ X0)) @ (cHOL4.patricia.KEYS @ X1))) @ ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ X0)) @ (cHOL4.patricia.TRAVERSE @ X1))))))))) (Tpatricia.PERM_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))))) @ ((cHOL4.sorting.PERM @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.list.CONS @ X1) @ (cHOL4.patricia.TRAVERSE @ X0))))))))))) (Tpatricia.PERM_NOT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0))))) @ ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ (cHOL4.patricia.TRAVERSE @ X0)))))))))) (Tpatricia.PERM_NOT_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))))) @ ((cHOL4.min.= @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.REMOVE @ X0) @ X1))) @ (cHOL4.patricia.TRAVERSE @ X0)))))))) (Tpatricia.PERM_DELETE_PTREE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0))))) @ ((cHOL4.sorting.PERM @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.REMOVE @ X0) @ X1))) @ ((cHOL4.list.FILTER @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X1)))) @ (cHOL4.patricia.TRAVERSE @ X0))))))))) (Tpatricia.FILTER_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.list.LENGTH @ X1))) @ (X0 @ ((cHOL4.list.EL @ X2) @ X1)))))) @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ X1))))))) (Tpatricia.PERM_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0))))) @ ((cHOL4.sorting.PERM @ (cHOL4.patricia.TRAVERSE @ ((cHOL4.patricia.REMOVE @ X0) @ X1))) @ ((cHOL4.list.FILTER @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X1)))) @ (cHOL4.patricia.TRAVERSE @ X0))))))))) (Tpatricia.SIZE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ ((cHOL4.patricia.ADD @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))) @ (cHOL4.patricia.SIZE @ X0)) @ ((cHOL4.arithmetic.+ @ (cHOL4.patricia.SIZE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tpatricia.SIZE_REMOVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ ((cHOL4.patricia.REMOVE @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.patricia.TRAVERSE @ X0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.patricia.SIZE @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.patricia.SIZE @ X0))))))))) (Tpatricia.SIZE,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ cHOL4.patricia.Empty)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ ((cHOL4.patricia.Leaf @ X0) @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ ((((cHOL4.patricia.Branch @ X2) @ X3) @ X4) @ X5))) @ ((cHOL4.arithmetic.+ @ (cHOL4.patricia.SIZE @ X4)) @ (cHOL4.patricia.SIZE @ X5)))))))))))))) (Tpatricia.SIZE_PTREE_OF_NUMSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.patricia.IS_PTREE @ X0)) @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.APPEND @ (cHOL4.patricia.TRAVERSE @ X0)) @ (cHOL4.list.SET_TO_LIST @ X1))))) @ ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.patricia.SIZE @ X0)) @ (cHOL4.pred_set.CARD @ X1)))))))))) (Tpatricia.SIZE_PTREE_OF_NUMSET_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.patricia.SIZE @ ((cHOL4.patricia.PTREE_OF_NUMSET @ cHOL4.patricia.Empty) @ X0))) @ (cHOL4.pred_set.CARD @ X0)))))) (Tpatricia.CARD_LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ (cHOL4.list.LIST_TO_SET @ X0))) @ (cHOL4.list.LENGTH @ X0)))))) (Tpatricia.CARD_NUMSET_OF_PTREE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.patricia.IS_PTREE @ X0)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ (cHOL4.patricia.NUMSET_OF_PTREE @ X0))) @ (cHOL4.patricia.SIZE @ X0)))))) (Tpatricia.DELETE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ X0)) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.DELETE @ X1) @ X0)) @ ((cHOL4.pred_set.DELETE @ X2) @ X0)))))))))) (Tpoly.poly_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ cHOL4.list.NIL) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.poly.poly @ X2) @ X0)))))))))))) (Tpoly.poly_add_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly_add @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly_add @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X1) @ X2)) @ ((cHOL4.list.CONS @ ((cHOL4.realax.real_add @ X1) @ (cHOL4.list.HD @ X0))) @ ((cHOL4.poly.poly_add @ X2) @ (cHOL4.list.TL @ X0))))))))))))) (Tpoly.poly_cmul_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.## @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.## @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.list.CONS @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.poly.## @ X0) @ X2))))))))))) (Tpoly.poly_neg_def,((cHOL4.min.= @ cHOL4.poly.poly_neg) @ (cHOL4.poly.## @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Tpoly.poly_mul_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly_mul @ cHOL4.list.NIL) @ X0)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ ((cHOL4.poly.## @ X1) @ X0)) @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.## @ X1) @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.poly.poly_mul @ X2) @ X0))))))))))))) (Tpoly.poly_exp_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly_exp @ X0) @ cHOL4.num.0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.poly.poly_exp @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.poly.poly_mul @ X0) @ ((cHOL4.poly.poly_exp @ X0) @ X1))))))))) (Tpoly.poly_diff_aux_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.poly.poly_diff_aux @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly_diff_aux @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.list.CONS @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ X1)) @ ((cHOL4.poly.poly_diff_aux @ (cHOL4.num.SUC @ X0)) @ X2))))))))))) (Tpoly.poly_diff_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.diff @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL) @ ((cHOL4.poly.poly_diff_aux @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.TL @ X0))))))) (Tpoly.poly_divides,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.poly.poly_divides @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ (cHOL4.poly.poly @ X1)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X0) @ X2))))))))))) (Tpoly.poly_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ X2))) @ X1))))))))))) (Tpoly.rsquarefree,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.rsquarefree @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X1) @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X1) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tpoly.normalize,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.normalize @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.normalize @ ((cHOL4.list.CONS @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ (cHOL4.poly.normalize @ X1)) @ cHOL4.list.NIL)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.poly.normalize @ X1)))))))))) (Tpoly.degree,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.degree @ X0)) @ (cHOL4.prim_rec.PRE @ (cHOL4.list.LENGTH @ (cHOL4.poly.normalize @ X0))))))) (Tpoly.POLY_ADD_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_add @ cHOL4.list.NIL) @ X2)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_add @ X3) @ cHOL4.list.NIL)) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.poly.poly_add @ ((cHOL4.list.CONS @ X5) @ X1)) @ ((cHOL4.list.CONS @ X4) @ X0))) @ ((cHOL4.list.CONS @ ((cHOL4.realax.real_add @ X5) @ X4)) @ ((cHOL4.poly.poly_add @ X1) @ X0)))))))))))))))))) (Tpoly.POLY_CMUL_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.poly.## @ X2) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ ((cHOL4.poly.## @ X2) @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.list.CONS @ ((cHOL4.realax.real_mul @ X2) @ X1)) @ ((cHOL4.poly.## @ X2) @ X0))))))))))) (Tpoly.POLY_NEG_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly_neg @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ (cHOL4.poly.poly_neg @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ (cHOL4.poly.poly_neg @ X0))))))))) (Tpoly.POLY_MUL_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_mul @ cHOL4.list.NIL) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL)) @ X1)) @ ((cHOL4.poly.## @ X3) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X2) @ X0))) @ X1)) @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.## @ X3) @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ X2) @ X0)) @ X1))))))))))))))) (Tpoly.POLY_DIFF_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.diff @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.diff @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ (cHOL4.poly.diff @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.poly.poly_diff_aux @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))))))))))) (Tpoly.POLY_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.poly.poly @ X0) @ X2)) @ ((cHOL4.poly.poly @ X1) @ X2)))))))))) (Tpoly.POLY_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ ((cHOL4.poly.## @ X1) @ X0)) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.poly.poly @ X0) @ X2)))))))))) (Tpoly.POLY_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ (cHOL4.poly.poly_neg @ X0)) @ X1)) @ (cHOL4.realax.real_neg @ ((cHOL4.poly.poly @ X0) @ X1)))))))) (Tpoly.POLY_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X1) @ X2)) @ X0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.poly.poly @ X1) @ X0)) @ ((cHOL4.poly.poly @ X2) @ X0)))))))))) (Tpoly.POLY_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly @ ((cHOL4.poly.poly_exp @ X0) @ X1)) @ X2)) @ ((cHOL4.real.pow @ ((cHOL4.poly.poly @ X0) @ X2)) @ X1))))))))) (Tpoly.POLY_DIFF_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((cHOL4.lim.diffl @ (^[X2]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X2) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.poly.poly @ X0) @ X2)))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X2) @ X1)) @ ((cHOL4.poly.poly @ ((cHOL4.poly.poly_diff_aux @ (cHOL4.num.SUC @ X1)) @ X0)) @ X2))) @ X2)))))))) (Tpoly.POLY_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.lim.diffl @ (^[X1]: ((cHOL4.poly.poly @ X0) @ X1))) @ ((cHOL4.poly.poly @ (cHOL4.poly.diff @ X0)) @ X1)) @ X1)))))) (Tpoly.POLY_DIFFERENTIABLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.lim.differentiable @ (^[X1]: ((cHOL4.poly.poly @ X0) @ X1))) @ X1)))))) (Tpoly.POLY_CONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.lim.contl @ (^[X1]: ((cHOL4.poly.poly @ X0) @ X1))) @ X1)))))) (Tpoly.POLY_IVT_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.poly.poly @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_gt @ ((cHOL4.poly.poly @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))) (Tpoly.POLY_IVT_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_gt @ ((cHOL4.poly.poly @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ ((cHOL4.poly.poly @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))) (Tpoly.POLY_MVT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X3) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.poly.poly @ X0) @ X2)) @ ((cHOL4.poly.poly @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ X2) @ X1)) @ ((cHOL4.poly.poly @ (cHOL4.poly.diff @ X0)) @ X3))))))))))))))) (Tpoly.POLY_ADD_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ X0) @ cHOL4.list.NIL))) @ (cHOL4.poly.poly @ X0))))) (Tpoly.POLY_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X0) @ ((cHOL4.poly.poly_mul @ X1) @ X2)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ ((cHOL4.poly.poly_mul @ X0) @ X1)) @ X2)))))))))) (Tpoly.POLY_EXP_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_exp @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ X0)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ ((cHOL4.poly.poly_exp @ X2) @ X1)) @ ((cHOL4.poly.poly_exp @ X2) @ X0))))))))))) (Tpoly.POLY_DIFF_AUX_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_diff_aux @ X2) @ ((cHOL4.poly.poly_add @ X0) @ X1)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.poly_diff_aux @ X2) @ X0)) @ ((cHOL4.poly.poly_diff_aux @ X2) @ X1))))))))))) (Tpoly.POLY_DIFF_AUX_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_diff_aux @ X2) @ ((cHOL4.poly.## @ X1) @ X0)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.## @ X1) @ ((cHOL4.poly.poly_diff_aux @ X2) @ X0))))))))))) (Tpoly.POLY_DIFF_AUX_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_diff_aux @ X1) @ (cHOL4.poly.poly_neg @ X0)))) @ (cHOL4.poly.poly @ (cHOL4.poly.poly_neg @ ((cHOL4.poly.poly_diff_aux @ X1) @ X0))))))))) (Tpoly.POLY_DIFF_AUX_MUL_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_diff_aux @ (cHOL4.num.SUC @ X1)) @ X0))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.poly_diff_aux @ X1) @ X0)) @ X0)))))))) (Tpoly.POLY_DIFF_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ ((cHOL4.poly.poly_add @ X0) @ X1)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ (cHOL4.poly.diff @ X0)) @ (cHOL4.poly.diff @ X1))))))))) (Tpoly.POLY_DIFF_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ ((cHOL4.poly.## @ X1) @ X0)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.## @ X1) @ (cHOL4.poly.diff @ X0))))))))) (Tpoly.POLY_DIFF_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ (cHOL4.poly.poly_neg @ X0)))) @ (cHOL4.poly.poly @ (cHOL4.poly.poly_neg @ (cHOL4.poly.diff @ X0))))))) (Tpoly.POLY_DIFF_MUL_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ ((cHOL4.list.CONS @ X1) @ X0)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.poly.diff @ X0))) @ X0)))))))) (Tpoly.POLY_DIFF_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ ((cHOL4.poly.poly_mul @ X0) @ X1)))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.poly_mul @ X0) @ (cHOL4.poly.diff @ X1))) @ ((cHOL4.poly.poly_mul @ (cHOL4.poly.diff @ X0)) @ X1))))))))) (Tpoly.POLY_DIFF_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ ((cHOL4.poly.poly_exp @ X0) @ (cHOL4.num.SUC @ X1))))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ ((cHOL4.poly.## @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.poly.poly_exp @ X0) @ X1))) @ (cHOL4.poly.diff @ X0))))))))) (Tpoly.POLY_DIFF_EXP_PRIME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ X0))))) @ (cHOL4.poly.poly @ ((cHOL4.poly.## @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X0))))))))) (Tpoly.POLY_LINEAR_REM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.list.CONS @ X2) @ X1)) @ ((cHOL4.poly.poly_add @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)) @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X3)))))))))))))) (Tpoly.POLY_LINEAR_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X1) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2))))))))))) (Tpoly.POLY_LENGTH_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X1))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X1)))))))) (Tpoly.POLY_ROOTS_INDEX_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X1)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ X0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X1) @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X4) @ X0)) @ ((cHOL4.min.= @ X3) @ (X2 @ X4)))))))))))))))) (Tpoly.POLY_ROOTS_INDEX_LENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X2) @ (X1 @ X3)))))))))))))) (Tpoly.POLY_ROOTS_FINITE_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X1)) @ ((cHOL4.min.= @ X3) @ (X2 @ X4)))))))))))))))) (Tpoly.FINITE_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X1)) @ ((cHOL4.min.= @ X3) @ (X0 @ X4))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X5)))))))))))))) (Tpoly.POLY_ROOTS_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X1)) @ ((cHOL4.min.= @ X3) @ (X2 @ X4)))))))))))))))) (Tpoly.POLY_ENTIRE_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X1)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X0) @ X1))) @ (cHOL4.poly.poly @ cHOL4.list.NIL))))))))) (Tpoly.POLY_ENTIRE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X0) @ X1))) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X1)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))))))))) (Tpoly.POLY_MUL_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X0) @ X1))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X0) @ X2)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X1)) @ (cHOL4.poly.poly @ X2))))))))))) (Tpoly.POLY_EXP_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_exp @ X0) @ X1))) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))))))) (Tpoly.POLY_PRIME_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL)))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))))) (Tpoly.POLY_EXP_PRIME_EQ_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X1))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))))))) (Tpoly.POLY_ZERO_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X1)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))))))))) (Tpoly.POLY_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.list.EVERY @ (^[X1]: ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X0))))) (Tpoly.POLY_DIFF_AUX_ISZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ (^[X2]: ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.poly.poly_diff_aux @ (cHOL4.num.SUC @ X1)) @ X0))) @ ((cHOL4.list.EVERY @ (^[X2]: ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X0))))))) (Tpoly.POLY_DIFF_ISZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))))) (Tpoly.POLY_DIFF_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))))) (Tpoly.POLY_DIFF_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ X1))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X1))))))))) (Tpoly.POLY_PRIMES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly_divides @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ ((cHOL4.poly.poly_mul @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.poly.poly_divides @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X1)) @ ((cHOL4.poly.poly_divides @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)))))))))) (Tpoly.POLY_DIVIDES_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.poly.poly_divides @ X0) @ X0)))) (Tpoly.POLY_DIVIDES_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ X0) @ X1)) @ ((cHOL4.poly.poly_divides @ X1) @ X2))) @ ((cHOL4.poly.poly_divides @ X0) @ X2))))))))) (Tpoly.POLY_DIVIDES_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ X0) @ X1)) @ ((cHOL4.poly.poly_exp @ X0) @ X2)))))))))) (Tpoly.POLY_EXP_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ X0) @ X3)) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ X3))) @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ X0) @ X2)) @ X1))))))))))) (Tpoly.POLY_DIVIDES_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ X0) @ X1)) @ ((cHOL4.poly.poly_divides @ X0) @ X2))) @ ((cHOL4.poly.poly_divides @ X0) @ ((cHOL4.poly.poly_add @ X1) @ X2)))))))))) (Tpoly.POLY_DIVIDES_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ X0) @ X1)) @ ((cHOL4.poly.poly_divides @ X0) @ ((cHOL4.poly.poly_add @ X1) @ X2)))) @ ((cHOL4.poly.poly_divides @ X0) @ X2))))))))) (Tpoly.POLY_DIVIDES_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ X0) @ X2)) @ ((cHOL4.poly.poly_divides @ X0) @ ((cHOL4.poly.poly_add @ X1) @ X2)))) @ ((cHOL4.poly.poly_divides @ X0) @ X1))))))))) (Tpoly.POLY_DIVIDES_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.poly.poly_divides @ X1) @ X0))))))) (Tpoly.POLY_ORDER_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X2)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X3)) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ X3))) @ X2))))))))))))) (Tpoly.POLY_ORDER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ X2))) @ X0))))))))))) (Tpoly.ORDER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ X2))) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.poly.poly_order @ X1) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))))))))))) (Tpoly.ORDER_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ ((cHOL4.poly.poly_order @ X1) @ X0))) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ ((cHOL4.poly.poly_order @ X1) @ X0)))) @ X0))))))))) (Tpoly.ORDER_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ (cHOL4.num.SUC @ X2))) @ X0))))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.poly.poly_order @ X1) @ X0)))))))))) (Tpoly.ORDER_POLY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ X1))) @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X2) @ X0)) @ ((cHOL4.poly.poly_order @ X2) @ X1)))))))))) (Tpoly.ORDER_ROOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X1) @ X0)) @ cHOL4.num.0))))))))) (Tpoly.ORDER_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poly.poly_divides @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.arithmetic.<= @ X2) @ ((cHOL4.poly.poly_order @ X1) @ X0))))))))))) (Tpoly.ORDER_DECOMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ ((cHOL4.poly.poly_exp @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ ((cHOL4.poly.poly_order @ X1) @ X0))) @ X2)))) @ (cHOL4.bool.~ @ ((cHOL4.poly.poly_divides @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2))))))))))) (Tpoly.ORDER_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X1) @ X2))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X0) @ ((cHOL4.poly.poly_mul @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.poly.poly_order @ X0) @ X1)) @ ((cHOL4.poly.poly_order @ X0) @ X2))))))))))) (Tpoly.ORDER_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X1) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X1) @ X0)) @ (cHOL4.num.SUC @ ((cHOL4.poly.poly_order @ X1) @ (cHOL4.poly.diff @ X0)))))))))) (Tpoly.POLY_SQUAREFREE_DECOMP_ORDER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X3) @ X2)))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X2)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.poly_mul @ X4) @ X0)) @ ((cHOL4.poly.poly_mul @ X5) @ (cHOL4.poly.diff @ X0))))))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X6) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.poly.poly_order @ X6) @ X0)) @ cHOL4.num.0)) @ cHOL4.num.0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))) (Tpoly.RSQUAREFREE_ROOTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.rsquarefree @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ (cHOL4.poly.diff @ X0)) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tpoly.RSQUAREFREE_DECOMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poly.rsquarefree @ X0)) @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ ((cHOL4.list.CONS @ (cHOL4.realax.real_neg @ X1)) @ ((cHOL4.list.CONS @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.list.NIL))) @ X2)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X2) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))) (Tpoly.POLY_SQUAREFREE_DECOMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X1) @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.diff @ X0))) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_mul @ X3) @ X2)))) @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X2)) @ (cHOL4.poly.poly @ ((cHOL4.poly.poly_add @ ((cHOL4.poly.poly_mul @ X4) @ X0)) @ ((cHOL4.poly.poly_mul @ X5) @ (cHOL4.poly.diff @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.poly.rsquarefree @ X1)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X1) @ X6)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X6)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))))))) (Tpoly.POLY_NORMALIZE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poly.poly @ (cHOL4.poly.normalize @ X0))) @ (cHOL4.poly.poly @ X0))))) (Tpoly.DEGREE_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.poly.degree @ X0)) @ cHOL4.num.0))))) (Tpoly.POLY_ROOTS_FINITE_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.poly.poly @ X0)) @ (cHOL4.poly.poly @ cHOL4.list.NIL)))) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.min.= @ ((cHOL4.poly.poly @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tpoly.POLY_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X0)) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.poly.poly @ X2) @ X0))) @ ((cHOL4.poly.poly @ ((cHOL4.list.MAP @ cHOL4.real.abs) @ X2)) @ X1)))))))))) (Tposet.function_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.poset.function @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (X1 @ (X2 @ X3))))))))))))) (Tposet.poset_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poset.poset @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((X1 @ X2) @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X2))))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X4)))))) @ ((X1 @ X2) @ X4))))))))))))))))) (Tposet.carrier_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poset.carrier @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X0)))))) (Tposet.relation_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.poset.relation @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ X1)))))) (Tposet.top_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.top @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((X1 @ X3) @ X2))))))))))))) (Tposet.bottom_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.bottom @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((X1 @ X2) @ X3))))))))))))) (Tposet.chain_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.chain @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X2 @ X4))))) @ ((cHOL4.bool.\/ @ ((X1 @ X3) @ X4)) @ ((X1 @ X4) @ X3))))))))))))))) (Tposet.lub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.poset.lub @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4))) @ ((X1 @ X4) @ X3))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X5)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4))) @ ((X1 @ X4) @ X5)))))) @ ((X1 @ X3) @ X5)))))))))))))))) (Tposet.glb_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.poset.glb @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4))) @ ((X1 @ X3) @ X4))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X5)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4))) @ ((X1 @ X5) @ X4)))))) @ ((X1 @ X5) @ X3)))))))))))))))) (Tposet.complete_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.poset.complete @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.lub @ X0) @ X1) @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.glb @ X0) @ X1) @ X2)))))))))) (Tposet.pointwise_lift_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.pointwise_lift @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ ((cHOL4.poset.function @ X0) @ X1)) @ (^[X3]: (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (X0 @ X5)) @ ((X2 @ (X3 @ X5)) @ (X4 @ X5)))))))))))))))) (Tposet.monotonic_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.monotonic @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((X1 @ X3) @ X4)))) @ ((X1 @ (X2 @ X3)) @ (X2 @ X4))))))))))))))) (Tposet.up_continuous_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.up_continuous @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poset.chain @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ (((cHOL4.poset.lub @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3) @ X4))) @ (((cHOL4.poset.lub @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X0 @ X6)) @ (X3 @ X6))) @ ((cHOL4.min.= @ X5) @ (X2 @ X6))))))) @ (X2 @ X4))))))))))))))) (Tposet.down_continuous_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.poset.down_continuous @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.poset.chain @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ (((cHOL4.poset.glb @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3) @ X4))) @ (((cHOL4.poset.glb @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X0 @ X6)) @ (X3 @ X6))) @ ((cHOL4.min.= @ X5) @ (X2 @ X6))))))) @ (X2 @ X4))))))))))))))) (Tposet.continuous_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.poset.continuous @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.poset.up_continuous @ X0) @ X1)) @ ((cHOL4.poset.down_continuous @ X0) @ X1)))))))) (Tposet.lfp_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.poset.lfp @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ X3)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((X1 @ (X2 @ X4)) @ X4))) @ ((X1 @ X3) @ X4)))))))))))))))) (Tposet.gfp_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.poset.gfp @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ X3)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((X1 @ X4) @ (X2 @ X4)))) @ ((X1 @ X4) @ X3)))))))))))))))) (Tposet.poset_nonempty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.poset.poset @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2))))))))) (Tposet.poset_refl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (X0 @ X2))) @ ((X1 @ X2) @ X2))))))))) (Tposet.poset_antisym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X2)))))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tposet.poset_trans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X4))))))) @ ((X1 @ X2) @ X4))))))))))))) (Tposet.lub_pred,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.poset.lub @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4)))) @ X3)) @ (((cHOL4.poset.lub @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3))))))))))) (Tposet.glb_pred,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.poset.glb @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4)))) @ X3)) @ (((cHOL4.poset.glb @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3))))))))))) (Tposet.complete_up,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.poset.complete @ X0)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.lub @ X0) @ X1) @ X2))))))))) (Tposet.complete_down,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.poset.complete @ X0)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.glb @ X0) @ X1) @ X2))))))))) (Tposet.complete_top,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ (cHOL4.poset.complete @ X0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.poset.top @ X0) @ X1))))))) (Tposet.complete_bottom,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ (cHOL4.poset.complete @ X0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.poset.bottom @ X0) @ X1))))))) (Tposet.complete_pointwise,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.poset.complete @ X0)) @ (cHOL4.poset.complete @ ((cHOL4.poset.pointwise_lift @ X1) @ X0)))))))) (Tposet.lfp_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.poset.lfp @ X0) @ X1) @ X2)) @ (((cHOL4.poset.lfp @ X0) @ X1) @ X3)))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tposet.gfp_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.poset.gfp @ X0) @ X1) @ X2)) @ (((cHOL4.poset.gfp @ X0) @ X1) @ X3)))) @ ((cHOL4.min.= @ X2) @ X3))))))))))) (Tposet.knaster_tarski_lfp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.poset.complete @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.poset.function @ (cHOL4.poset.carrier @ X0)) @ (cHOL4.poset.carrier @ X0)) @ X1)) @ ((cHOL4.poset.monotonic @ X0) @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.lfp @ X0) @ X1) @ X2))))))))) (Tposet.knaster_tarski_gfp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.poset.complete @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.poset.function @ (cHOL4.poset.carrier @ X0)) @ (cHOL4.poset.carrier @ X0)) @ X1)) @ ((cHOL4.poset.monotonic @ X0) @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.gfp @ X0) @ X1) @ X2))))))))) (Tposet.knaster_tarski,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.poset.poset @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.poset.complete @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.poset.function @ (cHOL4.poset.carrier @ X0)) @ (cHOL4.poset.carrier @ X0)) @ X1)) @ ((cHOL4.poset.monotonic @ X0) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.lfp @ X0) @ X1) @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.poset.gfp @ X0) @ X1) @ X2)))))))))) (Tpowser.diffs,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.powser.diffs @ X0)) @ (^[X1]: ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X1))) @ (X0 @ (cHOL4.num.SUC @ X1)))))))) (Tpowser.POWDIFF_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ X3)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X3)))))) @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ X3)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X3)))))))))))))) (Tpowser.POWDIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.real.pow @ X2) @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ X1) @ X2)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ X3)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X3)))))))))))))) (Tpowser.POWREV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ X3)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ X3)))))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ ((cHOL4.arithmetic.- @ X0) @ X3))) @ ((cHOL4.real.pow @ X2) @ X3)))))))))))) (Tpowser.POWSER_INSIDEA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ (X0 @ X3)) @ ((cHOL4.real.pow @ X1) @ X3))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X2)) @ (cHOL4.real.abs @ X1)))) @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ (cHOL4.real.abs @ (X0 @ X3))) @ ((cHOL4.real.pow @ X2) @ X3)))))))))))) (Tpowser.POWSER_INSIDE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ (X0 @ X3)) @ ((cHOL4.real.pow @ X1) @ X3))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X2)) @ (cHOL4.real.abs @ X1)))) @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ (X0 @ X3)) @ ((cHOL4.real.pow @ X2) @ X3)))))))))))) (Tpowser.DIFFS_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.powser.diffs @ (^[X1]: (cHOL4.realax.real_neg @ (X0 @ X1))))) @ (^[X1]: (cHOL4.realax.real_neg @ ((cHOL4.powser.diffs @ X0) @ X1))))))) (Tpowser.DIFFS_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X0]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ X1) @ X0)) @ ((cHOL4.real.pow @ X2) @ X0))))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X0]: ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ ((cHOL4.realax.real_mul @ (X1 @ X0)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ ((cHOL4.realax.real_mul @ (X1 @ X0)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tpowser.DIFFS_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X0]: ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ ((cHOL4.realax.real_mul @ (X1 @ X0)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X0]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ X1) @ X0)) @ ((cHOL4.real.pow @ X2) @ X0))))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ ((cHOL4.realax.real_mul @ (X1 @ X0)) @ ((cHOL4.real.pow @ X2) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tpowser.DIFFS_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ (^[X2]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ X0) @ X2)) @ ((cHOL4.real.pow @ X1) @ X2))))) @ ((cHOL4.seq.sums @ (^[X2]: ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ ((cHOL4.realax.real_mul @ (X0 @ X2)) @ ((cHOL4.real.pow @ X1) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.seq.suminf @ (^[X2]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ X0) @ X2)) @ ((cHOL4.real.pow @ X1) @ X2))))))))))) (Tpowser.TERMDIFF_LEMMA1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X3]: ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ X1) @ X2)) @ ((cHOL4.arithmetic.- @ X0) @ X3))) @ ((cHOL4.real.pow @ X1) @ X3))) @ ((cHOL4.real.pow @ X1) @ X0))))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ X3)) @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ X1) @ X2)) @ ((cHOL4.arithmetic.- @ X0) @ X3))) @ ((cHOL4.real.pow @ X1) @ ((cHOL4.arithmetic.- @ X0) @ X3)))))))))))))) (Tpowser.TERMDIFF_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2)) @ ((cHOL4.real.pow @ X0) @ X2))) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X0) @ X3)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3))) @ (^[X4]: ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X4)) @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X3)) @ X4)))))))))))))))))) (Tpowser.TERMDIFF_LEMMA3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X0)) @ X3)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.realax.real_add @ X0) @ X1))) @ X3)))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2)) @ ((cHOL4.real.pow @ X0) @ X2))) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X3) @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.abs @ X1))))))))))))))) (Tpowser.TERMDIFF_LEMMA4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X3))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X3)) @ X2))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (X0 @ X3))) @ ((cHOL4.realax.real_mul @ X1) @ (cHOL4.real.abs @ X3)))))))) @ (((cHOL4.lim.tends_real_real @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tpowser.TERMDIFF_LEMMA5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X3))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X3)) @ X2))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((X1 @ X3) @ X4))) @ ((cHOL4.realax.real_mul @ (X0 @ X4)) @ (cHOL4.real.abs @ X3))))))))))) @ (((cHOL4.lim.tends_real_real @ (^[X3]: (cHOL4.seq.suminf @ (X1 @ X3)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tpowser.TERMDIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ (X0 @ X3)) @ ((cHOL4.real.pow @ X1) @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ X0) @ X3)) @ ((cHOL4.real.pow @ X1) @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ (cHOL4.powser.diffs @ X0)) @ X3)) @ ((cHOL4.real.pow @ X1) @ X3))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X2)) @ (cHOL4.real.abs @ X1)))))) @ (((cHOL4.lim.diffl @ (^[X2]: (cHOL4.seq.suminf @ (^[X3]: ((cHOL4.realax.real_mul @ (X0 @ X3)) @ ((cHOL4.real.pow @ X2) @ X3)))))) @ (cHOL4.seq.suminf @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.powser.diffs @ X0) @ X3)) @ ((cHOL4.real.pow @ X2) @ X3))))) @ X2))))))))) (Tpred_set.GSPECIFICATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.pred_set.GSPEC @ X0))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.bool.T)) @ (X0 @ X2)))))))))) (Tpred_set.EMPTY_DEF,((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ (^[X0]: cHOL4.bool.F))) (Tpred_set.UNIV_DEF,((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ (^[X0]: cHOL4.bool.T))) (Tpred_set.SUBSET_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.PSUBSET_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tpred_set.UNION_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.INTER_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.DISJOINT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ cHOL4.pred_set.EMPTY))))))) (Tpred_set.DIFF_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1)))))))))))) (Tpred_set.INSERT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.DELETE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ X0) @ X1)) @ ((cHOL4.pred_set.DIFF @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.CHOICE_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.CHOICE @ X0)) @ X0))))) (Tpred_set.REST_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.REST @ X0)) @ ((cHOL4.pred_set.DELETE @ X0) @ (cHOL4.pred_set.CHOICE @ X0)))))) (Tpred_set.SING_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.SING @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.IMAGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ (X0 @ X2)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.INJ_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ (X0 @ X3)) @ X2))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X4) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X3)) @ (X0 @ X4))) @ ((cHOL4.min.= @ X3) @ X4)))))))))))))))) (Tpred_set.SURJ_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.SURJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ (X0 @ X3)) @ X2))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X1)) @ ((cHOL4.min.= @ (X0 @ X5)) @ X4)))))))))))))))) (Tpred_set.BIJ_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ (((cHOL4.pred_set.SURJ @ X0) @ X1) @ X2)))))))))) (Tpred_set.LINV_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.pred_set.LINV @ X0) @ X1) @ (X0 @ X3))) @ X3)))))))))))) (Tpred_set.RINV_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.SURJ @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.min.= @ (X0 @ (((cHOL4.pred_set.RINV @ X0) @ X1) @ X3))) @ X3)))))))))))) (Tpred_set.FINITE_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (X1 @ X0)) @ (cHOL4.bool.! @ (^[X2]: (X1 @ ((cHOL4.pred_set.INSERT @ X2) @ X0))))))))) @ (X1 @ X0)))))))) (Tpred_set.REL_RESTRICT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.pred_set.REL_RESTRICT @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((X0 @ X2) @ X3))))))))))))) (Tpred_set.CARD_DEF,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ cHOL4.pred_set.EMPTY)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INSERT @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.num.SUC @ (cHOL4.pred_set.CARD @ X0))))))))))) (Tpred_set.BIGUNION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X1) @ X2))))))))))) (Tpred_set.BIGINTER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X1) @ X2))))))))))) (Tpred_set.CROSS_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pair.FST @ X2)) @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.pair.SND @ X2)) @ X1))))))))))) (Tpred_set.COMPL_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ X0)) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ X0))))) (Tpred_set.count_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.count @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))) (Tpred_set.ITSET_tupled_primitive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.ITSET_tupled @ X0)) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.pred_set.EMPTY)))) @ ((X1 @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.REST @ X3)) @ ((X0 @ (cHOL4.pred_set.CHOICE @ X3)) @ X2))) @ ((cHOL4.pair.|comma| @ X3) @ X2))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X3]: (^[X2]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ (cHOL4.pred_set.FINITE @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.pred_set.EMPTY)) @ X2) @ (X4 @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.REST @ X3)) @ ((X0 @ (cHOL4.pred_set.CHOICE @ X3)) @ X2))))) @ cHOL4.bool.ARB)))))))))))) (Tpred_set.ITSET_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X0) @ X1) @ X2)) @ ((cHOL4.pred_set.ITSET_tupled @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))) (Tpred_set.SUM_IMAGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)) @ (((cHOL4.pred_set.ITSET @ (^[X2]: (^[X3]: ((cHOL4.arithmetic.+ @ (X0 @ X2)) @ X3)))) @ X1) @ cHOL4.num.0))))))) (Tpred_set.SUM_SET_DEF,((cHOL4.min.= @ cHOL4.pred_set.SUM_SET) @ (cHOL4.pred_set.SUM_IMAGE @ cHOL4.combin.I))) (Tpred_set.PROD_IMAGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.PROD_IMAGE @ X0) @ X1)) @ (((cHOL4.pred_set.ITSET @ (^[X2]: (^[X3]: ((cHOL4.arithmetic.* @ (X0 @ X2)) @ X3)))) @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tpred_set.PROD_SET_DEF,((cHOL4.min.= @ cHOL4.pred_set.PROD_SET) @ (cHOL4.pred_set.PROD_IMAGE @ cHOL4.combin.I))) (Tpred_set.MAX_SET_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pred_set.MAX_SET @ X0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.pred_set.MAX_SET @ X0)))))))))) (Tpred_set.MIN_SET_DEF,((cHOL4.min.= @ cHOL4.while.LEAST) @ cHOL4.while.LEAST)) (Tpred_set.POW_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.POW @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)))))))) (Tpred_set.equiv_on_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.equiv_on @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((X0 @ X2) @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1))) @ ((cHOL4.min.= @ ((X0 @ X2) @ X3)) @ ((X0 @ X3) @ X2)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((X0 @ X3) @ X4)))))) @ ((X0 @ X2) @ X4)))))))))))))))) (Tpred_set.partition_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.partition @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.min.= @ X2) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((X0 @ X3) @ X4)))))))))))))))))) (Tpred_set.pairwise_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.pairwise @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1))) @ ((X0 @ X2) @ X3)))))))))))) (Tpred_set.chooser_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.chooser @ X0) @ cHOL4.num.0)) @ (cHOL4.pred_set.CHOICE @ X0))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.chooser @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.pred_set.chooser @ (cHOL4.pred_set.REST @ X0)) @ X1)))))))) (Tpred_set.countable_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.countable @ X0)) @ (cHOL4.bool.? @ (^[X1]: (((cHOL4.pred_set.INJ @ X1) @ X0) @ cHOL4.pred_set.UNIV))))))) (Tpred_set.num_to_pair_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.num_to_pair @ X0)) @ ((cHOL4.pair.|comma| @ (cHOL4.numpair.nfst @ X0)) @ (cHOL4.numpair.nsnd @ X0)))))) (Tpred_set.pair_to_num_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.pair_to_num @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.numpair.npair @ X0) @ X1))))))) (Tpred_set.SPECIFICATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X0)) @ (X0 @ X1))))))) (Tpred_set.IN_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (^[X0]: (X1 @ X0)))) @ (X1 @ X0))))))) (Tpred_set.ABS_applied,cHOL4.bool.T) (Tpred_set.EXTENSION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.NOT_EQUAL_SETS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X0))))))))))) (Tpred_set.NUM_SET_WOP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool.IN @ X1) @ X0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.arithmetic.<= @ X1) @ X2))))))))))) (Tpred_set.SET_MINIMUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ X0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.arithmetic.<= @ (X1 @ X2)) @ (X1 @ X3)))))))))))))) (Tpred_set.NOT_IN_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.MEMBER_NOT_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool.IN @ X1) @ X0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)))))) (Tpred_set.EMPTY_applied,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.EMPTY @ X0)) @ cHOL4.bool.F)))) (Tpred_set.IN_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.IN @ X0) @ cHOL4.pred_set.UNIV)))) (Tpred_set.UNIV_NOT_EMPTY,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.EMPTY))) (Tpred_set.EMPTY_NOT_UNIV,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ cHOL4.pred_set.UNIV))) (Tpred_set.EQ_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ X1) @ X0)))) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.UNIV))))) (Tpred_set.SUBSET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2))) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2))))))))) (Tpred_set.SUBSET_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.SUBSET @ X0) @ X0)))) (Tpred_set.SUBSET_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpred_set.EMPTY_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.SUBSET @ cHOL4.pred_set.EMPTY) @ X0)))) (Tpred_set.SUBSET_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.SUBSET_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.SUBSET @ X0) @ cHOL4.pred_set.UNIV)))) (Tpred_set.UNIV_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ cHOL4.pred_set.UNIV) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.UNIV))))) (Tpred_set.PSUBSET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.PSUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.PSUBSET @ X1) @ X2))) @ ((cHOL4.pred_set.PSUBSET @ X0) @ X2))))))))) (Tpred_set.PSUBSET_IRREFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.pred_set.PSUBSET @ X0) @ X0))))) (Tpred_set.NOT_PSUBSET_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.pred_set.PSUBSET @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.NOT_UNIV_PSUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.pred_set.PSUBSET @ cHOL4.pred_set.UNIV) @ X0))))) (Tpred_set.PSUBSET_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X0)))))))) (Tpred_set.IN_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.UNION_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.UNION @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.UNION_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X2))))))))) (Tpred_set.UNION_IDEMPOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ X0)) @ X0)))) (Tpred_set.UNION_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ ((cHOL4.pred_set.UNION @ X1) @ X0))))))) (Tpred_set.SUBSET_UNION,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ X0) @ ((cHOL4.pred_set.UNION @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X0)))))))) (Tpred_set.UNION_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X2)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))))))))) (Tpred_set.SUBSET_UNION_ABSORPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X1))))))) (Tpred_set.UNION_EMPTY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ cHOL4.pred_set.EMPTY) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ cHOL4.pred_set.EMPTY)) @ X0))))) (Tpred_set.UNION_UNIV,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ cHOL4.pred_set.UNIV) @ X0)) @ cHOL4.pred_set.UNIV)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.UNIV))))) (Tpred_set.EMPTY_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.IN_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.INTER @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.INTER_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.INTER @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.INTER_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ X2))))))))) (Tpred_set.INTER_IDEMPOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X0)) @ X0)))) (Tpred_set.INTER_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ ((cHOL4.pred_set.INTER @ X1) @ X0))))))) (Tpred_set.INTER_SUBSET,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.INTER @ X1) @ X0)) @ X0))))))) (Tpred_set.SUBSET_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2)))))))))) (Tpred_set.SUBSET_INTER_ABSORPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ X0))))))) (Tpred_set.INTER_EMPTY,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ cHOL4.pred_set.EMPTY) @ X0)) @ cHOL4.pred_set.EMPTY)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.INTER_UNIV,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ cHOL4.pred_set.UNIV) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ cHOL4.pred_set.UNIV)) @ X0))))) (Tpred_set.UNION_OVER_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ ((cHOL4.pred_set.INTER @ X0) @ X2)))))))))) (Tpred_set.INTER_OVER_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ ((cHOL4.pred_set.UNION @ X0) @ X2)))))))))) (Tpred_set.IN_DISJOINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)) @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.DISJOINT_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X0))))))) (Tpred_set.DISJOINT_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ cHOL4.pred_set.EMPTY) @ X0)) @ ((cHOL4.pred_set.DISJOINT @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.DISJOINT_EMPTY_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.pred_set.DISJOINT @ X0) @ X0))))) (Tpred_set.DISJOINT_EMPTY_REFL_RWT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X0) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.DISJOINT_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X0) @ X2)) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)))))))))) (Tpred_set.DISJOINT_UNION_BOTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X0) @ X2)) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X2) @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X0) @ X2)) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2))))))))))) (Tpred_set.DISJOINT_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.pred_set.DISJOINT @ X0) @ X2))))))))) (Tpred_set.IN_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.DIFF_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.DIFF @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.DIFF_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ cHOL4.pred_set.EMPTY)) @ X0)))) (Tpred_set.EMPTY_DIFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.EMPTY) @ X0)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.DIFF_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.DIFF_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X1)) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))))))) (Tpred_set.DIFF_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ X0)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.DIFF_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X0)))))) (Tpred_set.UNION_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X1) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X1)) @ X0)))))))) (Tpred_set.DIFF_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X2))))))))) (Tpred_set.DIFF_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.DIFF @ X0) @ X2)) @ X1))))))))) (Tpred_set.DIFF_SAME_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X0)) @ ((cHOL4.pred_set.DIFF @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X1)) @ ((cHOL4.pred_set.DIFF @ X0) @ X1)))))))) (Tpred_set.IN_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X0) @ X2)))))))))) (Tpred_set.INSERT_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.INSERT @ X1) @ X2) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.IN @ X0) @ X2)))))))))) (Tpred_set.COMPONENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.INSERT @ X0) @ X1))))))) (Tpred_set.SET_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X2))))))))))) (Tpred_set.DECOMPOSITION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X2))))))))))) (Tpred_set.ABSORPTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X1))))))) (Tpred_set.ABSORPTION_RWT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X1))))))) (Tpred_set.INSERT_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.pred_set.INSERT @ X0) @ X1))))))) (Tpred_set.INSERT_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.pred_set.INSERT @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ X2)))))))))) (Tpred_set.INSERT_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.UNIV)))) (Tpred_set.NOT_INSERT_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ cHOL4.pred_set.EMPTY))))))) (Tpred_set.NOT_EMPTY_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ ((cHOL4.pred_set.INSERT @ X0) @ X1)))))))) (Tpred_set.INSERT_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X0) @ X2)) @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))))))))))) (Tpred_set.INSERT_UNION_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2)))))))))) (Tpred_set.INSERT_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X0) @ X2)) @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ X1) @ X2)))))))))) (Tpred_set.DISJOINT_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X2))))))))))) (Tpred_set.INSERT_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ X2)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))))))))) (Tpred_set.SUBSET_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ X2))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))))))))) (Tpred_set.INSERT_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.INSERT @ X2) @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ ((cHOL4.pred_set.INSERT @ X2) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))))))))))) (Tpred_set.UNIV_BOOL,((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.bool.T) @ ((cHOL4.pred_set.INSERT @ cHOL4.bool.F) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.IN_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.pred_set.DELETE @ X0) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Tpred_set.DELETE_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.DELETE @ X0) @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Tpred_set.DELETE_NON_ELEMENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ X1) @ X0)) @ X1))))))) (Tpred_set.IN_DELETE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.pred_set.DELETE @ X0) @ X2))) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.DELETE @ X0) @ X1))))))))))) (Tpred_set.EMPTY_DELETE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ cHOL4.pred_set.EMPTY) @ X0)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.DELETE_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.DELETE @ X1) @ X0)) @ X0)) @ ((cHOL4.pred_set.DELETE @ X1) @ X0))))))) (Tpred_set.DELETE_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.DELETE @ X2) @ X0)) @ X1)) @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.DELETE @ X2) @ X1)) @ X0))))))))) (Tpred_set.DELETE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.DELETE @ X1) @ X0)) @ X1)))))) (Tpred_set.SUBSET_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X1) @ ((cHOL4.pred_set.DELETE @ X2) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X1))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))))))))) (Tpred_set.SUBSET_INSERT_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ X2))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.DELETE @ X1) @ X0)) @ X2))))))))) (Tpred_set.DIFF_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1))) @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.DELETE @ X0) @ X2)) @ X1))))))))) (Tpred_set.PSUBSET_INSERT_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X0))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.INSERT @ X2) @ X0)) @ X1)))))))))) (Tpred_set.PSUBSET_MEMBER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X0)))))))))))) (Tpred_set.DELETE_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.INSERT @ X0) @ X2)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.pred_set.DELETE @ X2) @ X1)) @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1))))))))))) (Tpred_set.INSERT_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.DELETE @ X1) @ X0))) @ X1))))))) (Tpred_set.DELETE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.DELETE @ X0) @ X2)) @ X1)) @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ X2))))))))) (Tpred_set.DISJOINT_DELETE_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.DELETE @ X0) @ X2)) @ X1)) @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.DELETE @ X1) @ X2)) @ X0))))))))) (Tpred_set.CHOICE_NOT_IN_REST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ (cHOL4.pred_set.CHOICE @ X0)) @ (cHOL4.pred_set.REST @ X0)))))) (Tpred_set.CHOICE_INSERT_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ (cHOL4.pred_set.CHOICE @ X0)) @ (cHOL4.pred_set.REST @ X0))) @ X0))))) (Tpred_set.REST_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.REST @ X0)) @ X0)))) (Tpred_set.REST_PSUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.PSUBSET @ (cHOL4.pred_set.REST @ X0)) @ X0))))) (Tpred_set.SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.SING @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.SING_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.SING @ cHOL4.pred_set.EMPTY)) @ cHOL4.bool.F)) (Tpred_set.SING_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.SING @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))))))))) (Tpred_set.SING_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.SING @ ((cHOL4.pred_set.UNION @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.pred_set.SING @ X1)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.pred_set.SING @ X0)) @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.SING @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.SING @ X0)) @ ((cHOL4.min.= @ X1) @ X0))))))))))) (Tpred_set.IN_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpred_set.SING_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY) @ X0)) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpred_set.NOT_SING_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.NOT_EMPTY_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)))))) (Tpred_set.EQUAL_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tpred_set.DISJOINT_SING_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.INSERT_SING_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X1) @ X0)) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ X0))))))) (Tpred_set.SING_DELETE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ X0)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.DELETE_EQ_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ X0) @ X1)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))))))))) (Tpred_set.CHOICE_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.CHOICE @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ X0)))) (Tpred_set.REST_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.REST @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.SING_IFF_EMPTY_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.SING @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ (cHOL4.pred_set.REST @ X0)) @ cHOL4.pred_set.EMPTY)))))) (Tpred_set.IN_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.IMAGE @ X2) @ X1))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (X2 @ X3))) @ ((cHOL4.bool.IN @ X3) @ X1)))))))))))) (Tpred_set.IMAGE_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.IMAGE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (X2 @ X3))) @ ((cHOL4.bool.IN @ X3) @ X1)))))))))))) (Tpred_set.IMAGE_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (X2 @ X0)) @ ((cHOL4.pred_set.IMAGE @ X2) @ X1)))))))))) (Tpred_set.IMAGE_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY)))) (Tpred_set.IMAGE_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ (^[X1]: X1)) @ X0)) @ X0)))) (Tpred_set.IMAGE_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ ((cHOL4.combin.o @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X2)))))))))) (Tpred_set.IMAGE_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.pred_set.INSERT @ (X0 @ X1)) @ ((cHOL4.pred_set.IMAGE @ X0) @ X2)))))))))) (Tpred_set.IMAGE_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X1) @ X0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))))) (Tpred_set.IMAGE_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ X2)))))))))) (Tpred_set.IMAGE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)) @ ((cHOL4.pred_set.IMAGE @ X0) @ X2)))))))))) (Tpred_set.IMAGE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.IMAGE @ X2) @ X0)) @ ((cHOL4.pred_set.IMAGE @ X2) @ X1)))))))))) (Tpred_set.IMAGE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)) @ ((cHOL4.pred_set.IMAGE @ X0) @ X2)))))))))) (Tpred_set.IMAGE_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X2 @ X3)) @ (X2 @ X4))) @ ((cHOL4.min.= @ X3) @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X2) @ X1)) @ ((cHOL4.pred_set.IMAGE @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X0)))))))))) (Tpred_set.IMAGE_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X2 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)) @ ((cHOL4.pred_set.IMAGE @ X2) @ X3)))))))))))) (Tpred_set.INJ_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.INJ @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ (X2 @ X3)) @ X0))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X4) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (X2 @ X3)) @ (X2 @ X4))) @ ((cHOL4.min.= @ X3) @ X4)))))))))))))))) (Tpred_set.INJ_ID,(cHOL4.bool.! @ (^[X0]: (((cHOL4.pred_set.INJ @ (^[X1]: X1)) @ X0) @ X0)))) (Tpred_set.INJ_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X2) @ X3)) @ (((cHOL4.pred_set.INJ @ X1) @ X3) @ X4))) @ (((cHOL4.pred_set.INJ @ ((cHOL4.combin.o @ X1) @ X0)) @ X2) @ X4))))))))))))) (Tpred_set.INJ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((cHOL4.pred_set.INJ @ X0) @ cHOL4.pred_set.EMPTY) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.INJ @ X0) @ X2) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.INJ_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X2) @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (((cHOL4.pred_set.INJ @ X2) @ ((cHOL4.pred_set.DELETE @ X0) @ X3)) @ ((cHOL4.pred_set.DELETE @ X1) @ (X2 @ X3)))))))))))))) (Tpred_set.INJ_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.pred_set.INJ @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2)) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (X0 @ X1)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X4)))) @ ((cHOL4.min.= @ X1) @ X4)))))))))))))))) (Tpred_set.INJ_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X3) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X4)))) @ (((cHOL4.pred_set.INJ @ X0) @ X3) @ X4))))))))))))) (Tpred_set.SURJ_ID,(cHOL4.bool.! @ (^[X0]: (((cHOL4.pred_set.SURJ @ (^[X1]: X1)) @ X0) @ X0)))) (Tpred_set.SURJ_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.SURJ @ X0) @ X2) @ X3)) @ (((cHOL4.pred_set.SURJ @ X1) @ X3) @ X4))) @ (((cHOL4.pred_set.SURJ @ ((cHOL4.combin.o @ X1) @ X0)) @ X2) @ X4))))))))))))) (Tpred_set.SURJ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.pred_set.SURJ @ X0) @ cHOL4.pred_set.EMPTY) @ X1)) @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.SURJ @ X0) @ X2) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.IMAGE_SURJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.SURJ @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)) @ X2))))))))) (Tpred_set.SURJ_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.pred_set.SURJ @ X1) @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))))))) (Tpred_set.SURJ_INJ_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.SURJ @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X3) @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X0)) @ ((cHOL4.min.= @ (X2 @ (X3 @ X4))) @ X4))))))))))))))) (Tpred_set.BIJ_ID,(cHOL4.bool.! @ (^[X0]: (((cHOL4.pred_set.BIJ @ (^[X1]: X1)) @ X0) @ X0)))) (Tpred_set.BIJ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.EMPTY) @ X1)) @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.BIJ @ X0) @ X2) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.BIJ_COMPOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.BIJ @ X0) @ X2) @ X3)) @ (((cHOL4.pred_set.BIJ @ X1) @ X3) @ X4))) @ (((cHOL4.pred_set.BIJ @ ((cHOL4.combin.o @ X1) @ X0)) @ X2) @ X4))))))))))))) (Tpred_set.BIJ_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.BIJ @ X2) @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (((cHOL4.pred_set.BIJ @ X2) @ ((cHOL4.pred_set.DELETE @ X0) @ X3)) @ ((cHOL4.pred_set.DELETE @ X1) @ (X2 @ X3)))))))))))))) (Tpred_set.BIJ_LINV_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.min.= @ (X0 @ (((cHOL4.pred_set.LINV @ X0) @ X1) @ X3))) @ X3)))))))))))) (Tpred_set.BIJ_LINV_BIJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ (((cHOL4.pred_set.BIJ @ ((cHOL4.pred_set.LINV @ X0) @ X1)) @ X2) @ X1))))))))) (Tpred_set.BIJ_IFF_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ (X0 @ X3)) @ X2))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ X2)) @ ((cHOL4.bool.IN @ (X4 @ X5)) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.min.= @ (X4 @ (X0 @ X3))) @ X3))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ X2)) @ ((cHOL4.min.= @ (X0 @ (X4 @ X5))) @ X5))))))))))))))))) (Tpred_set.BIJ_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.pred_set.BIJ @ X2) @ ((cHOL4.pred_set.INSERT @ X3) @ X1)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (X2 @ X3)) @ X0)) @ (((cHOL4.pred_set.BIJ @ X2) @ X1) @ ((cHOL4.pred_set.DELETE @ X0) @ (X2 @ X3)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (((cHOL4.pred_set.BIJ @ X2) @ X1) @ X0))))))))))))) (Tpred_set.FINITE_EMPTY,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.EMPTY)) (Tpred_set.FINITE_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (X0 @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))) @ (X0 @ ((cHOL4.pred_set.INSERT @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (X0 @ X1)))))))) (Tpred_set.FINITE_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ (cHOL4.pred_set.FINITE @ X1))))))) (Tpred_set.FINITE_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.DELETE @ X1) @ X0))) @ (cHOL4.pred_set.FINITE @ X1))))))) (Tpred_set.FINITE_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.REST @ X0)))))) (Tpred_set.FINITE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1)))))))) (Tpred_set.INTER_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.INTER @ X0) @ X1)))))))) (Tpred_set.SUBSET_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ (cHOL4.pred_set.FINITE @ X1)))))))) (Tpred_set.SUBSET_FINITE_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))) @ (cHOL4.pred_set.FINITE @ X1))))))) (Tpred_set.PSUBSET_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.PSUBSET @ X1) @ X0)) @ (cHOL4.pred_set.FINITE @ X1)))))))) (Tpred_set.FINITE_DIFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.DIFF @ X0) @ X1)))))))) (Tpred_set.FINITE_DIFF_down,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.DIFF @ X0) @ X1))) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.pred_set.FINITE @ X0))))))) (Tpred_set.FINITE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.SING_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.SING @ X0)) @ (cHOL4.pred_set.FINITE @ X0))))) (Tpred_set.IMAGE_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X1) @ X0)))))))) (Tpred_set.FINITELY_INJECTIVE_IMAGE_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.min.= @ X1) @ (X0 @ X2))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X0) @ X3))) @ (cHOL4.pred_set.FINITE @ X3)))))))) (Tpred_set.INJECTIVE_IMAGE_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X0) @ X3))) @ (cHOL4.pred_set.FINITE @ X3)))))))) (Tpred_set.FINITE_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.FINITE @ X2))) @ (cHOL4.pred_set.FINITE @ X1))))))))) (Tpred_set.REL_RESTRICT_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.REL_RESTRICT @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.relation.EMPTY_REL)))) (Tpred_set.REL_RESTRICT_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ ((cHOL4.relation.RSUBSET @ ((cHOL4.pred_set.REL_RESTRICT @ X2) @ X1)) @ ((cHOL4.pred_set.REL_RESTRICT @ X2) @ X0)))))))))) (Tpred_set.CARD_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.CARD @ cHOL4.pred_set.EMPTY)) @ cHOL4.num.0)) (Tpred_set.CARD_INSERT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INSERT @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.num.SUC @ (cHOL4.pred_set.CARD @ X0)))))))))) (Tpred_set.CARD_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)))))) (Tpred_set.CARD_DELETE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.DELETE @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.arithmetic.- @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.pred_set.CARD @ X0))))))))) (Tpred_set.CARD_INTER_LESS_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INTER @ X0) @ X1))) @ (cHOL4.pred_set.CARD @ X0)))))))) (Tpred_set.CARD_UNION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INTER @ X0) @ X1)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.pred_set.CARD @ X1)))))))))) (Tpred_set.CARD_UNION_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.pred_set.CARD @ X1))) @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INTER @ X0) @ X1)))))))))) (Tpred_set.CARD_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ (cHOL4.pred_set.CARD @ X1)) @ (cHOL4.pred_set.CARD @ X0))))))))) (Tpred_set.CARD_PSUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.PSUBSET @ X1) @ X0)) @ ((cHOL4.prim_rec.< @ (cHOL4.pred_set.CARD @ X1)) @ (cHOL4.pred_set.CARD @ X0))))))))) (Tpred_set.SUBSET_EQ_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.pred_set.CARD @ X1))) @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tpred_set.CARD_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Tpred_set.SING_IFF_CARD1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.SING @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.pred_set.FINITE @ X0)))))) (Tpred_set.CARD_DIFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.DIFF @ X1) @ X0))) @ ((cHOL4.arithmetic.- @ (cHOL4.pred_set.CARD @ X1)) @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INTER @ X1) @ X0))))))))))) (Tpred_set.CARD_DIFF_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.DIFF @ X1) @ X0))) @ ((cHOL4.arithmetic.- @ (cHOL4.pred_set.CARD @ X1)) @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.INTER @ X1) @ X0)))))))))) (Tpred_set.LESS_CARD_DIFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.pred_set.CARD @ X1))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.DIFF @ X1) @ X0))))))))))) (Tpred_set.BIJ_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.pred_set.FINITE @ X2))))))))) (Tpred_set.FINITE_BIJ_CARD_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.BIJ @ X2) @ X0) @ X1)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.pred_set.CARD @ X1))))))))))) (Tpred_set.CARD_INJ_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.IMAGE @ X0) @ X1))) @ (cHOL4.pred_set.CARD @ X1)))))))) (Tpred_set.FINITE_COMPLETE_INDUCTION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.PSUBSET @ X2) @ X1)) @ (X0 @ X2))))) @ ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (X0 @ X1)))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (X0 @ X1)))))))) (Tpred_set.INJ_CARD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.FINITE @ X2))) @ ((cHOL4.arithmetic.<= @ (cHOL4.pred_set.CARD @ X1)) @ (cHOL4.pred_set.CARD @ X2)))))))))) (Tpred_set.PHP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.prim_rec.< @ (cHOL4.pred_set.CARD @ X2)) @ (cHOL4.pred_set.CARD @ X1)))) @ (cHOL4.bool.~ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)))))))))) (Tpred_set.INFINITE_DEF,cHOL4.bool.T) (Tpred_set.NOT_IN_FINITE,((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X0))))))))) (Tpred_set.INFINITE_INHAB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool.IN @ X1) @ X0))))))) (Tpred_set.IMAGE_11_INFINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X3))) @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X0) @ X3)))))))))) (Tpred_set.INFINITE_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X1))))))))) (Tpred_set.IN_INFINITE_NOT_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tpred_set.INFINITE_UNIV,((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.? @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X1)) @ X2))))))))))) (Tpred_set.INFINITE_NUM_UNIV,(cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) (Tpred_set.FINITE_PSUBSET_INFINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ ((cHOL4.pred_set.PSUBSET @ X1) @ X0))))))))) (Tpred_set.FINITE_PSUBSET_UNIV,((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.pred_set.PSUBSET @ X0) @ cHOL4.pred_set.UNIV)))))) (Tpred_set.INFINITE_DIFF_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.FINITE_ISO_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.pred_set.CARD @ X0))) @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.pred_set.CARD @ X0)))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))) @ ((cHOL4.min.= @ X2) @ X3)))))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ (X1 @ X2)) @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.pred_set.CARD @ X0))))))))))))) (Tpred_set.FINITE_WEAK_ENUMERATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ X0)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X2)) @ ((cHOL4.min.= @ X3) @ (X1 @ X4)))))))))))))))) (Tpred_set.FINITE_WF_noloops,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.relation.WF @ ((cHOL4.pred_set.REL_RESTRICT @ X0) @ X1))) @ (cHOL4.relation.irreflexive @ (cHOL4.relation.TC @ ((cHOL4.pred_set.REL_RESTRICT @ X0) @ X1)))))))))) (Tpred_set.FINITE_StrongOrder_WF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.relation.StrongOrder @ ((cHOL4.pred_set.REL_RESTRICT @ X0) @ X1)))) @ (cHOL4.relation.WF @ ((cHOL4.pred_set.REL_RESTRICT @ X0) @ X1)))))))) (Tpred_set.IN_BIGUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.pred_set.BIGUNION @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ X2)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.BIGUNION_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.BIGUNION @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ X2)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tpred_set.BIGUNION_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY)) (Tpred_set.BIGUNION_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ X0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ cHOL4.pred_set.EMPTY) @ cHOL4.pred_set.EMPTY))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ (cHOL4.pred_set.BIGUNION @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ cHOL4.pred_set.EMPTY) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.BIGUNION_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ X0)))) (Tpred_set.BIGUNION_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.BIGUNION @ X0)) @ (cHOL4.pred_set.BIGUNION @ X1)))))))) (Tpred_set.DISJOINT_BIGUNION,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.pred_set.BIGUNION @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.pred_set.DISJOINT @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X1) @ (cHOL4.pred_set.BIGUNION @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2))))))))))) (Tpred_set.BIGUNION_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ X0) @ (cHOL4.pred_set.BIGUNION @ X1)))))))) (Tpred_set.BIGUNION_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.BIGUNION @ X1)) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X0)))))))))) (Tpred_set.FINITE_BIGUNION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.pred_set.FINITE @ X1)))))) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.BIGUNION @ X0)))))) (Tpred_set.FINITE_BIGUNION_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.BIGUNION @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.pred_set.FINITE @ X1))))))))) (Tpred_set.SUBSET_BIGUNION_I,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.pred_set.BIGUNION @ X1)))))))) (Tpred_set.CARD_BIGUNION_SAME_SIZED_SETS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X2)) @ X0)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))))) @ ((cHOL4.pred_set.DISJOINT @ X3) @ X4))))))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ (cHOL4.pred_set.BIGUNION @ X1))) @ ((cHOL4.arithmetic.* @ (cHOL4.pred_set.CARD @ X1)) @ X0)))))))) (Tpred_set.IN_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.pred_set.BIGINTER @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X0) @ X2)))))))))) (Tpred_set.BIGINTER_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.BIGINTER @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X0) @ X2)))))))))) (Tpred_set.BIGINTER_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.pred_set.INTER @ X0) @ (cHOL4.pred_set.BIGINTER @ X1)))))))) (Tpred_set.BIGINTER_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.UNIV)) (Tpred_set.BIGINTER_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.pred_set.INTER @ X0) @ X1))))))) (Tpred_set.BIGINTER_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ X0)))) (Tpred_set.SUBSET_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.pred_set.BIGINTER @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2)))))))))) (Tpred_set.DISJOINT_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X2)) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X0) @ (cHOL4.pred_set.BIGINTER @ X2))) @ ((cHOL4.pred_set.DISJOINT @ (cHOL4.pred_set.BIGINTER @ X2)) @ X0)))))))))) (Tpred_set.BIGINTER_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.BIGINTER @ X0)) @ (cHOL4.pred_set.BIGINTER @ X1)))))))) (Tpred_set.IN_CROSS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.CROSS @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pair.FST @ X2)) @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.pair.SND @ X2)) @ X1)))))))))) (Tpred_set.CROSS_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.CROSS @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pair.FST @ X2)) @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.pair.SND @ X2)) @ X1)))))))))) (Tpred_set.CROSS_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.EMPTY) @ X0)) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.CROSS_INSERT_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.INSERT @ X2) @ X0)) @ X1)) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ X1)) @ ((cHOL4.pred_set.CROSS @ X0) @ X1)))))))))) (Tpred_set.CROSS_INSERT_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.CROSS @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.CROSS @ X0) @ X1)))))))))) (Tpred_set.FINITE_CROSS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.CROSS @ X0) @ X1)))))))) (Tpred_set.CROSS_SINGS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ cHOL4.pred_set.EMPTY))))))) (Tpred_set.CARD_SING_CROSS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)) @ X1))) @ (cHOL4.pred_set.CARD @ X1)))))))) (Tpred_set.CARD_CROSS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ ((cHOL4.pred_set.CROSS @ X0) @ X1))) @ ((cHOL4.arithmetic.* @ (cHOL4.pred_set.CARD @ X0)) @ (cHOL4.pred_set.CARD @ X1))))))))) (Tpred_set.CROSS_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.CROSS @ X2) @ X3)) @ ((cHOL4.pred_set.CROSS @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X3) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X2) @ X0)) @ ((cHOL4.pred_set.SUBSET @ X3) @ X1)))))))))))))) (Tpred_set.FINITE_CROSS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.CROSS @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1)))))))))) (Tpred_set.CROSS_UNIV,((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))) (Tpred_set.INFINITE_PAIR_UNIV,((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)))) (Tpred_set.SUM_UNIV,((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.IMAGE @ cHOL4.sum.INL) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.pred_set.IMAGE @ cHOL4.sum.INR) @ cHOL4.pred_set.UNIV)))) (Tpred_set.INJ_INL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ (cHOL4.sum.INL @ X2)) @ X0))))) @ (((cHOL4.pred_set.INJ @ cHOL4.sum.INL) @ X1) @ X0))))))) (Tpred_set.INJ_INR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ (cHOL4.sum.INR @ X2)) @ X0))))) @ (((cHOL4.pred_set.INJ @ cHOL4.sum.INR) @ X1) @ X0))))))) (Tpred_set.IN_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.pred_set.COMPL @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X1)))))))) (Tpred_set.COMPL_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.COMPL @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X1)))))))) (Tpred_set.COMPL_COMPL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ (cHOL4.pred_set.COMPL @ X0))) @ X0)))) (Tpred_set.COMPL_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.COMPL @ X0)) @ X0)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.COMPL @ X0)) @ X0)) @ cHOL4.pred_set.UNIV))))) (Tpred_set.COMPL_SPLITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.COMPL @ X0)) @ X1))) @ X1)))))) (Tpred_set.INTER_UNION_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.COMPL @ X0)) @ (cHOL4.pred_set.COMPL @ X1))))))))) (Tpred_set.COMPL_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.UNIV)) (Tpred_set.COMPL_INTER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ (cHOL4.pred_set.COMPL @ X0))) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.COMPL @ X0)) @ X0)) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.COMPL_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ ((cHOL4.pred_set.UNION @ X1) @ X0))) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.COMPL @ X1)) @ (cHOL4.pred_set.COMPL @ X0)))))))) (Tpred_set.IN_COUNT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.pred_set.count @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tpred_set.COUNT_applied,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.count @ X1) @ X0)) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tpred_set.COUNT_ZERO,((cHOL4.min.= @ (cHOL4.pred_set.count @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY)) (Tpred_set.COUNT_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.count @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.pred_set.INSERT @ X0) @ (cHOL4.pred_set.count @ X0)))))) (Tpred_set.FINITE_COUNT,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.count @ X0))))) (Tpred_set.CARD_COUNT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ (cHOL4.pred_set.count @ X0))) @ X0)))) (Tpred_set.COUNT_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.pred_set.count @ X1)) @ (cHOL4.pred_set.count @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tpred_set.ITSET_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY)))) @ ((X1 @ (cHOL4.pred_set.REST @ X2)) @ ((X0 @ (cHOL4.pred_set.CHOICE @ X2)) @ X3)))) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X1 @ X4) @ X5))))))))))) (Tpred_set.ITSET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X1) @ X0) @ X2)) @ (((cHOL4.bool.COND @ (cHOL4.pred_set.FINITE @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ X2) @ (((cHOL4.pred_set.ITSET @ X1) @ (cHOL4.pred_set.REST @ X0)) @ ((X1 @ (cHOL4.pred_set.CHOICE @ X0)) @ X2)))) @ cHOL4.bool.ARB))))))))) (Tpred_set.ITSET_IND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.pred_set.EMPTY)))) @ ((X1 @ (cHOL4.pred_set.REST @ X2)) @ ((X0 @ (cHOL4.pred_set.CHOICE @ X2)) @ X3)))) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X1 @ X4) @ X5))))))))))) (Tpred_set.ITSET_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X1) @ X0) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ X2) @ (((cHOL4.pred_set.ITSET @ X1) @ (cHOL4.pred_set.REST @ X0)) @ ((X1 @ (cHOL4.pred_set.CHOICE @ X0)) @ X2)))))))))))) (Tpred_set.ITSET_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X0) @ cHOL4.pred_set.EMPTY) @ X1)) @ X1)))))) (Tpred_set.ITSET_INSERT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ X0)) @ X3)) @ (((cHOL4.pred_set.ITSET @ X1) @ (cHOL4.pred_set.REST @ ((cHOL4.pred_set.INSERT @ X2) @ X0))) @ ((X1 @ (cHOL4.pred_set.CHOICE @ ((cHOL4.pred_set.INSERT @ X2) @ X0))) @ X3))))))))))))) (Tpred_set.COMMUTING_ITSET_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((X0 @ X2) @ ((X0 @ X3) @ X4))) @ ((X0 @ X3) @ ((X0 @ X2) @ X4)))))))))) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1)) @ X5)) @ (((cHOL4.pred_set.ITSET @ X0) @ ((cHOL4.pred_set.DELETE @ X1) @ X2)) @ ((X0 @ X2) @ X5))))))))))))) (Tpred_set.COMMUTING_ITSET_RECURSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((X0 @ X4) @ ((X0 @ X5) @ X6))) @ ((X0 @ X5) @ ((X0 @ X4) @ X6)))))))))) @ (cHOL4.pred_set.FINITE @ X2))) @ ((cHOL4.min.= @ (((cHOL4.pred_set.ITSET @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2)) @ X3)) @ ((X0 @ X1) @ (((cHOL4.pred_set.ITSET @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1)) @ X3))))))))))))) (Tpred_set.SUM_IMAGE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1))))))))))))) (Tpred_set.SUM_IMAGE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ (X0 @ X1))))))) (Tpred_set.SUM_IMAGE_SUBSET_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)))))))))) (Tpred_set.SUM_IMAGE_IN_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool.IN @ X2) @ X1))) @ ((cHOL4.arithmetic.<= @ (X0 @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)))))))))) (Tpred_set.SUM_IMAGE_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ ((cHOL4.pred_set.DELETE @ X1) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.arithmetic.- @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)) @ (X0 @ X2))) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1))))))))))) (Tpred_set.SUM_IMAGE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X2))) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2)))))))))))) (Tpred_set.SUM_IMAGE_lower_bound,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ (X0 @ X3)))))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.* @ (cHOL4.pred_set.CARD @ X1)) @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1))))))))))) (Tpred_set.SUM_IMAGE_upper_bound,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.arithmetic.<= @ (X0 @ X3)) @ X2))))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)) @ ((cHOL4.arithmetic.* @ (cHOL4.pred_set.CARD @ X1)) @ X2))))))))))) (Tpred_set.SUM_SAME_IMAGE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))))))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.arithmetic.* @ (cHOL4.pred_set.CARD @ X0)) @ (X1 @ X2)))))))))))) (Tpred_set.SUM_IMAGE_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X0)) @ ((cHOL4.min.= @ (X3 @ X4)) @ (X2 @ X4))))))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X3) @ X1)) @ ((cHOL4.pred_set.SUM_IMAGE @ X2) @ X0)))))))))))) (Tpred_set.SUM_IMAGE_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.num.0))))))))))) (Tpred_set.ABS_DIFF_SUM_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.ABS_DIFF @ ((cHOL4.pred_set.SUM_IMAGE @ X1) @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X2))) @ ((cHOL4.pred_set.SUM_IMAGE @ (^[X3]: ((cHOL4.arithmetic.ABS_DIFF @ (X1 @ X3)) @ (X0 @ X3)))) @ X2)))))))))) (Tpred_set.SUM_IMAGE_MONO_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.arithmetic.<= @ (X1 @ X3)) @ (X0 @ X3)))))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.pred_set.SUM_IMAGE @ X1) @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X2))))))))))) (Tpred_set.SUM_IMAGE_MONO_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.prim_rec.< @ (X1 @ X3)) @ (X0 @ X3)))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.arithmetic.<= @ (X1 @ X3)) @ (X0 @ X3))))))) @ ((cHOL4.prim_rec.< @ ((cHOL4.pred_set.SUM_IMAGE @ X1) @ X2)) @ ((cHOL4.pred_set.SUM_IMAGE @ X0) @ X2))))))))))) (Tpred_set.SUM_SET_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.SUM_SET @ cHOL4.pred_set.EMPTY)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.pred_set.SUM_SET @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.pred_set.SUM_SET @ ((cHOL4.pred_set.DELETE @ X1) @ X0))))))))))) (Tpred_set.SUM_SET_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.SUM_SET @ cHOL4.pred_set.EMPTY)) @ cHOL4.num.0)) (Tpred_set.SUM_SET_SING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.SUM_SET @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ X0)))) (Tpred_set.SUM_SET_SUBSET_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.pred_set.SUM_SET @ X0)) @ (cHOL4.pred_set.SUM_SET @ X1)))))))) (Tpred_set.SUM_SET_IN_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool.IN @ X0) @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.pred_set.SUM_SET @ X1)))))))) (Tpred_set.SUM_SET_DELETE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.SUM_SET @ ((cHOL4.pred_set.DELETE @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.arithmetic.- @ (cHOL4.pred_set.SUM_SET @ X0)) @ X1)) @ (cHOL4.pred_set.SUM_SET @ X0))))))))) (Tpred_set.SUM_SET_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.SUM_SET @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.pred_set.SUM_SET @ X0)) @ (cHOL4.pred_set.SUM_SET @ X1))) @ (cHOL4.pred_set.SUM_SET @ ((cHOL4.pred_set.INTER @ X0) @ X1)))))))))) (Tpred_set.PROD_IMAGE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.PROD_IMAGE @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.PROD_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.arithmetic.* @ (X0 @ X1)) @ ((cHOL4.pred_set.PROD_IMAGE @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1))))))))))))) (Tpred_set.PROD_SET_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.PROD_SET @ cHOL4.pred_set.EMPTY)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ (cHOL4.pred_set.PROD_SET @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.pred_set.PROD_SET @ ((cHOL4.pred_set.DELETE @ X1) @ X0))))))))))) (Tpred_set.PROD_SET_EMPTY,((cHOL4.min.= @ (cHOL4.pred_set.PROD_SET @ cHOL4.pred_set.EMPTY)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) (Tpred_set.PROD_SET_IMAGE_REDUCTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ (X0 @ X2)) @ ((cHOL4.pred_set.IMAGE @ X0) @ X1))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.PROD_SET @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1)))) @ ((cHOL4.arithmetic.* @ (X0 @ X2)) @ (cHOL4.pred_set.PROD_SET @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)))))))))))) (Tpred_set.MAX_SET_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.MAX_SET @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.pred_set.MAX_SET @ ((cHOL4.pred_set.INSERT @ X2) @ ((cHOL4.pred_set.INSERT @ X3) @ X1)))) @ ((cHOL4.arithmetic.MAX @ X2) @ (cHOL4.pred_set.MAX_SET @ ((cHOL4.pred_set.INSERT @ X3) @ X1))))))))))))) (Tpred_set.MAX_SET_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.arithmetic.<= @ X3) @ X2))))) @ ((cHOL4.bool.IN @ X2) @ X0))) @ (X1 @ X2))))))) @ (X1 @ (cHOL4.pred_set.MAX_SET @ X0)))))))) (Tpred_set.MIN_SET_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.arithmetic.<= @ X2) @ X3))))) @ ((cHOL4.bool.IN @ X2) @ X0))) @ (X1 @ X2)))))) @ (X1 @ (cHOL4.while.LEAST @ X0)))))))) (Tpred_set.MIN_SET_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.while.LEAST @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.while.LEAST @ ((cHOL4.pred_set.INSERT @ X2) @ ((cHOL4.pred_set.INSERT @ X3) @ X1)))) @ ((cHOL4.arithmetic.MIN @ X2) @ (cHOL4.while.LEAST @ ((cHOL4.pred_set.INSERT @ X3) @ X1)))))))))))) (Tpred_set.MIN_SET_LEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.while.LEAST @ X0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ (cHOL4.while.LEAST @ X0)) @ X1))))))))) (Tpred_set.SUBSET_MIN_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)))) @ ((cHOL4.arithmetic.<= @ (cHOL4.while.LEAST @ X1)) @ (cHOL4.while.LEAST @ X0)))))))))) (Tpred_set.SUBSET_MAX_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)))))) @ ((cHOL4.arithmetic.<= @ (cHOL4.pred_set.MAX_SET @ X0)) @ (cHOL4.pred_set.MAX_SET @ X1)))))))))) (Tpred_set.MIN_SET_LEQ_MAX_SET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.pred_set.FINITE @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.while.LEAST @ X0)) @ (cHOL4.pred_set.MAX_SET @ X0)))))) (Tpred_set.MIN_SET_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.min.= @ (cHOL4.while.LEAST @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.arithmetic.MIN @ (cHOL4.while.LEAST @ X0)) @ (cHOL4.while.LEAST @ X1))))))))) (Tpred_set.MAX_SET_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.MAX_SET @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.arithmetic.MAX @ (cHOL4.pred_set.MAX_SET @ X0)) @ (cHOL4.pred_set.MAX_SET @ X1))))))))) (Tpred_set.IN_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.pred_set.POW @ X0))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))))))) (Tpred_set.UNIV_FUN_TO_BOOL,((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ (cHOL4.pred_set.POW @ cHOL4.pred_set.UNIV))) (Tpred_set.SUBSET_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.POW @ X0)) @ (cHOL4.pred_set.POW @ X1)))))))) (Tpred_set.SUBSET_INSERT_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ ((cHOL4.pred_set.SUBSET @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ X2)))))))))) (Tpred_set.SUBSET_DELETE_BOTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.DELETE @ X0) @ X2)) @ ((cHOL4.pred_set.DELETE @ X1) @ X2)))))))))) (Tpred_set.POW_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.IMAGE @ (cHOL4.pred_set.INSERT @ X0)) @ (cHOL4.pred_set.POW @ X1))) @ (cHOL4.pred_set.POW @ X1)))))))) (Tpred_set.POW_EQNS,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.pred_set.INSERT @ cHOL4.pred_set.EMPTY) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.IMAGE @ (cHOL4.pred_set.INSERT @ X0)) @ X2)) @ X2))) @ (cHOL4.pred_set.POW @ X1))))))))) (Tpred_set.FINITE_POW,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.POW @ X0)))))) (Tpred_set.CARD_POW,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ (cHOL4.pred_set.POW @ X0))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.pred_set.CARD @ X0))))))) (Tpred_set.GSPEC_ETA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (X0 @ X1))))) @ X0)))) (Tpred_set.GSPEC_F,((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X0]: ((cHOL4.pair.|comma| @ X0) @ cHOL4.bool.F)))) @ cHOL4.pred_set.EMPTY)) (Tpred_set.GSPEC_T,((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X0]: ((cHOL4.pair.|comma| @ X0) @ cHOL4.bool.T)))) @ cHOL4.pred_set.UNIV)) (Tpred_set.GSPEC_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool.IN @ X1) @ X0))))) @ X0)))) (Tpred_set.GSPEC_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.min.= @ X1) @ X0))))) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.GSPEC_EQ2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.min.= @ X0) @ X1))))) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.GSPEC_F_COND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (cHOL4.pair.SND @ (X0 @ X1)))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ X0)) @ cHOL4.pred_set.EMPTY))))) (Tpred_set.GSPEC_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ (X0 @ X2)) @ (X1 @ X2)))))) @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X0 @ X2))))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X1 @ X2))))))))))) (Tpred_set.GSPEC_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.\/ @ (X0 @ X2)) @ (X1 @ X2)))))) @ ((cHOL4.pred_set.UNION @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X0 @ X2))))) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (X1 @ X2))))))))))) (Tpred_set.BIGUNION_partition,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.equiv_on @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.partition @ X1) @ X0))) @ X0))))))) (Tpred_set.EMPTY_NOT_IN_partition,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.equiv_on @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ ((cHOL4.pred_set.partition @ X1) @ X0))))))))) (Tpred_set.partition_elements_disjoint,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.equiv_on @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.partition @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.partition @ X1) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))))) @ ((cHOL4.pred_set.DISJOINT @ X2) @ X3)))))))))))) (Tpred_set.partition_elements_interrelate,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.equiv_on @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.partition @ X1) @ X0))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.bool.IN @ X4) @ X2))) @ ((X1 @ X3) @ X4))))))))))))))) (Tpred_set.partition_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.partition @ X0) @ X1))) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))))))))) (Tpred_set.FINITE_partition,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.partition @ X0) @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.pred_set.partition @ X0) @ X1))) @ (cHOL4.pred_set.FINITE @ X2))))))))))) (Tpred_set.partition_CARD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.equiv_on @ X0) @ X1)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X1)) @ ((cHOL4.pred_set.SUM_IMAGE @ cHOL4.pred_set.CARD) @ ((cHOL4.pred_set.partition @ X0) @ X1))))))))) (Tpred_set.pairwise_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.pairwise @ X2) @ ((cHOL4.pred_set.UNION @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.pairwise @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.pairwise @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X4) @ X0))) @ ((cHOL4.bool./\ @ ((X2 @ X3) @ X4)) @ ((X2 @ X4) @ X3))))))))))))))))) (Tpred_set.pairwise_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.pairwise @ X0) @ X2)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2))) @ ((cHOL4.pred_set.pairwise @ X0) @ X1))))))))) (Tpred_set.KoenigsLemma,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((X0 @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((X0 @ (X3 @ X4)) @ (X3 @ (cHOL4.num.SUC @ X4))))))))))))))) (Tpred_set.KoenigsLemma_WF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((X0 @ X1) @ X2)))))))) @ (cHOL4.relation.WF @ (cHOL4.relation.inv @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2))))))))))) (Tpred_set.SET_EQ_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)))))))) (Tpred_set.PSUBSET_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))))))))) (Tpred_set.PSUBSET_SUBSET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.PSUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2))) @ ((cHOL4.pred_set.PSUBSET @ X0) @ X2))))))))) (Tpred_set.SUBSET_PSUBSET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.PSUBSET @ X1) @ X2))) @ ((cHOL4.pred_set.PSUBSET @ X0) @ X2))))))))) (Tpred_set.CROSS_EQNS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.EMPTY) @ X2)) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.INSERT @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((cHOL4.pair.|comma| @ X0) @ X3))) @ X2)) @ ((cHOL4.pred_set.CROSS @ X1) @ X2))))))))))) (Tpred_set.count_EQN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.count @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY) @ ((cHOL4.bool.LET @ (^[X1]: ((cHOL4.pred_set.INSERT @ X1) @ (cHOL4.pred_set.count @ X1)))) @ (cHOL4.prim_rec.PRE @ X0))))))) (Tpred_set.UNIQUE_MEMBER_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.min.= @ X0) @ X2)))))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY)))))))) (Tpred_set.inj_surj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.SURJ @ X3) @ X2) @ X1)))))))))))) (Tpred_set.infinite_rest,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.REST @ X0))))))) (Tpred_set.chooser_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.chooser @ X0) @ cHOL4.num.0)) @ (cHOL4.pred_set.CHOICE @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.chooser @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.pred_set.chooser @ (cHOL4.pred_set.REST @ X0)) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.chooser @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ ((cHOL4.pred_set.chooser @ (cHOL4.pred_set.REST @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))))))) (Tpred_set.infinite_num_inj,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.bool.? @ (^[X1]: (((cHOL4.pred_set.INJ @ X1) @ cHOL4.pred_set.UNIV) @ X0))))))) (Tpred_set.countable_image_nats,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.countable @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))))) (Tpred_set.countable_surj,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.countable @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.? @ (^[X1]: (((cHOL4.pred_set.SURJ @ X1) @ cHOL4.pred_set.UNIV) @ X0)))))))) (Tpred_set.num_countable,(cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)) (Tpred_set.subset_countable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X0)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))) @ (cHOL4.pred_set.countable @ X1))))))) (Tpred_set.image_countable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.countable @ X1)) @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)))))))) (Tpred_set.finite_countable,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.countable @ X0))))) (Tpred_set.pair_to_num_formula,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.pair_to_num @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.* @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))))))) (Tpred_set.pair_to_num_inv,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.pair_to_num @ (cHOL4.pred_set.num_to_pair @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.num_to_pair @ (cHOL4.pred_set.pair_to_num @ ((cHOL4.pair.|comma| @ X0) @ X1)))) @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tpred_set.cross_countable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X0)) @ (cHOL4.pred_set.countable @ X1))) @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.CROSS @ X0) @ X1)))))))) (Tpred_set.inter_countable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.pred_set.countable @ X0)) @ (cHOL4.pred_set.countable @ X1))) @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.INTER @ X0) @ X1)))))))) (Tpred_set.inj_countable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X2)) @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2))) @ (cHOL4.pred_set.countable @ X1))))))))) (Tpred_set.bigunion_countable,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.pred_set.countable @ X1)))))) @ (cHOL4.pred_set.countable @ (cHOL4.pred_set.BIGUNION @ X0)))))) (Tpred_set.union_countable,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X0)) @ (cHOL4.pred_set.countable @ X1))) @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.UNION @ X0) @ X1)))))))) (Tpred_set.union_countable_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.UNION @ X1) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X1)) @ (cHOL4.pred_set.countable @ X0)))))))) (Tpred_set.inj_image_countable_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X1) @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ ((cHOL4.min.= @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ (cHOL4.pred_set.countable @ X0)))))))) (Tpred_set.pow_no_surj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X1]: (((cHOL4.pred_set.SURJ @ X1) @ X0) @ (cHOL4.pred_set.POW @ X0)))))))) (Tpred_set.infinite_pow_uncountable,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (cHOL4.bool.~ @ (cHOL4.pred_set.countable @ (cHOL4.pred_set.POW @ X0))))))) (Tpred_set.countable_Usum,((cHOL4.min.= @ (cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)))) (Tpred_set.countable_EMPTY,(cHOL4.pred_set.countable @ cHOL4.pred_set.EMPTY)) (Tpred_set.countable_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.INSERT @ X0) @ X1))) @ (cHOL4.pred_set.countable @ X1))))))) (Tpred_set.cross_countable_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.countable @ ((cHOL4.pred_set.CROSS @ X1) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X1)) @ (cHOL4.pred_set.countable @ X0)))))))))) (Tpred_set.countable_Uprod,((cHOL4.min.= @ (cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.countable @ cHOL4.pred_set.UNIV)))) (Tpred_set.IMAGE_BIGUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.pred_set.BIGUNION @ X1))) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (cHOL4.pred_set.IMAGE @ X0)) @ X1)))))))) (Tpred_set.SUBSET_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ ((cHOL4.pred_set.DIFF @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.DISJOINT @ X0) @ X2)))))))))) (Tpred_set.INTER_SUBSET_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X1) @ X0)) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X1) @ X0)) @ X0)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)))))))) (Tpred_set.PSUBSET_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X1) @ ((cHOL4.pred_set.INSERT @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))))))) (Tpred_set.INTER_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.UNION @ X1) @ X0)) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X1) @ ((cHOL4.pred_set.UNION @ X1) @ X0))) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X1) @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ X1))))))))) (Tpred_set.UNION_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.UNION @ ((cHOL4.pred_set.DELETE @ X0) @ X2)) @ ((cHOL4.pred_set.DELETE @ X1) @ X2)))))))))) (Tpred_set.DELETE_SUBSET_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.DELETE @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.SUBSET @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2)))))))))) (Tpred_set.IN_INSERT_EXPAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.bool.IN @ X0) @ X2))))))))))) (Tpred_set.FINITE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.INTER @ X0) @ X1)))))))) (Tprelim.ordering_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)))) (Tprelim.ordering_BIJ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prelim.num2ordering @ (cHOL4.prelim.ordering2num @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.prim_rec.< @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ (cHOL4.prelim.num2ordering @ X1))) @ X1)))))) (Tprelim.ordering_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prelim.ordering_size @ X0)) @ cHOL4.num.0)))) (Tprelim.ordering_CASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.prelim.ordering_CASE @ X0) @ X1) @ X2) @ X3)) @ ((^[X4]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X4) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2) @ X3))) @ (cHOL4.prelim.ordering2num @ X0)))))))))))) (Tprelim.compare_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prelim.compare @ cHOL4.prelim.LESS) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prelim.compare @ cHOL4.prelim.EQUAL) @ X0) @ X1) @ X2)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prelim.compare @ cHOL4.prelim.GREATER) @ X0) @ X1) @ X2)) @ X2)))))))))) (Tprelim.list_compare_tupled_primitive_def,((cHOL4.min.= @ cHOL4.prelim.list_compare_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X2) @ X4)) @ ((cHOL4.list.CONS @ X1) @ X3)))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: (((cHOL4.list.list_CASE @ X9) @ (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.prelim.EQUAL)) @ (^[X11]: (^[X12]: (cHOL4.combin.I @ cHOL4.prelim.LESS))))) @ (^[X2]: (^[X4]: (((cHOL4.list.list_CASE @ X10) @ (cHOL4.combin.I @ cHOL4.prelim.GREATER)) @ (^[X1]: (^[X3]: (cHOL4.combin.I @ ((((cHOL4.prelim.compare @ ((X5 @ X2) @ X1)) @ cHOL4.prelim.LESS) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3)))) @ cHOL4.prelim.GREATER))))))))))))))))))) (Tprelim.list_compare_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ X0) @ X1) @ X2)) @ (cHOL4.prelim.list_compare_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tprelim.list_merge_tupled_primitive_def,((cHOL4.min.= @ cHOL4.prelim.list_merge_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((X5 @ X4) @ X3))) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X5 @ X4) @ X3)) @ ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.list.CONS @ X3) @ X1)))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X1)))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X2]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ X2)) @ (^[X3]: (^[X1]: (((cHOL4.list.list_CASE @ X2) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ X3) @ X1))) @ (^[X4]: (^[X10]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((X5 @ X4) @ X3)) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X10) @ ((cHOL4.list.CONS @ X3) @ X1)))))) @ ((cHOL4.list.CONS @ X3) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X4) @ X10)) @ X1))))))))))))))))))))))) (Tprelim.list_merge_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.prelim.list_merge @ X0) @ X1) @ X2)) @ (cHOL4.prelim.list_merge_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tprelim.num2ordering_ordering2num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prelim.num2ordering @ (cHOL4.prelim.ordering2num @ X0))) @ X0)))) (Tprelim.ordering2num_num2ordering,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ (cHOL4.prelim.num2ordering @ X0))) @ X0))))) (Tprelim.num2ordering_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.prelim.num2ordering @ X0)) @ (cHOL4.prelim.num2ordering @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tprelim.ordering2num_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ X0)) @ (cHOL4.prelim.ordering2num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tprelim.num2ordering_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.prelim.num2ordering @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tprelim.ordering2num_ONTO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.prelim.ordering2num @ X1)))))))) (Tprelim.num2ordering_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prelim.num2ordering @ cHOL4.num.0)) @ cHOL4.prelim.LESS)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prelim.num2ordering @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ (cHOL4.prelim.num2ordering @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.prelim.GREATER)))) (Tprelim.ordering2num_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ cHOL4.prelim.LESS)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ cHOL4.prelim.EQUAL)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ cHOL4.prelim.GREATER)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Tprelim.ordering_EQ_ordering,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.prelim.ordering2num @ X0)) @ (cHOL4.prelim.ordering2num @ X1)))))))) (Tprelim.ordering_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prelim.ordering_CASE @ cHOL4.prelim.LESS) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prelim.ordering_CASE @ cHOL4.prelim.EQUAL) @ X0) @ X1) @ X2)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prelim.ordering_CASE @ cHOL4.prelim.GREATER) @ X0) @ X1) @ X2)) @ X2)))))))))) (Tprelim.datatype_ordering,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.prelim.LESS) @ cHOL4.prelim.EQUAL) @ cHOL4.prelim.GREATER))))) (Tprelim.ordering_distinct,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.prelim.LESS) @ cHOL4.prelim.EQUAL))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.prelim.LESS) @ cHOL4.prelim.GREATER))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.prelim.EQUAL) @ cHOL4.prelim.GREATER))))) (Tprelim.ordering_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.prelim.LESS)) @ ((cHOL4.min.= @ X5) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ X6) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.prelim.GREATER)) @ ((cHOL4.min.= @ X7) @ X0)))))) @ ((cHOL4.min.= @ ((((cHOL4.prelim.ordering_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.prelim.ordering_CASE @ X4) @ X2) @ X1) @ X0)))))))))))))))))))) (Tprelim.ordering_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.prelim.LESS)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ X0) @ cHOL4.prelim.GREATER)))))) (Tprelim.ordering_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.prelim.LESS)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.prelim.EQUAL)) @ X1)) @ ((cHOL4.min.= @ (X3 @ cHOL4.prelim.GREATER)) @ X2)))))))))))) (Tprelim.ordering_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.prelim.EQUAL)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.prelim.GREATER)) @ (X0 @ cHOL4.prelim.LESS)))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tprelim.ordering_eq_dec,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.prelim.LESS) @ cHOL4.prelim.EQUAL)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.prelim.LESS) @ cHOL4.prelim.GREATER)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.prelim.EQUAL) @ cHOL4.prelim.GREATER)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.prelim.EQUAL) @ cHOL4.prelim.LESS)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.prelim.GREATER) @ cHOL4.prelim.LESS)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.prelim.GREATER) @ cHOL4.prelim.EQUAL)) @ cHOL4.bool.F)))))))) (Tprelim.list_compare_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((X0 @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (((X0 @ X1) @ ((cHOL4.list.CONS @ X4) @ X5)) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ (((X0 @ X1) @ X7) @ X9)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X6) @ X7)) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))) @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (((X0 @ X10) @ X11) @ X12))))))))))) (Tprelim.list_compare_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.prelim.EQUAL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ X0) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X1))) @ cHOL4.prelim.LESS)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ X0) @ ((cHOL4.list.CONS @ X4) @ X3)) @ cHOL4.list.NIL)) @ cHOL4.prelim.GREATER)))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ X0) @ ((cHOL4.list.CONS @ X6) @ X8)) @ ((cHOL4.list.CONS @ X5) @ X7))) @ ((((cHOL4.prelim.compare @ ((X0 @ X6) @ X5)) @ cHOL4.prelim.LESS) @ (((cHOL4.prelim.list_compare @ X0) @ X8) @ X7)) @ cHOL4.prelim.GREATER)))))))))))))))) (Tprelim.compare_equal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ X0) @ X3) @ X4)) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ X3) @ X4)))))))))) (Tprelim.list_merge_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X4))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((X1 @ X5) @ X6))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X5) @ X2)) @ X7))) @ ((cHOL4.min.==> @ ((X1 @ X5) @ X6)) @ (((X0 @ X1) @ X2) @ ((cHOL4.list.CONS @ X6) @ X7))))) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X5) @ X2)) @ ((cHOL4.list.CONS @ X6) @ X7)))))))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (((X0 @ X8) @ X9) @ X10))))))))))) (Tprelim.list_merge_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.prelim.list_merge @ X1) @ X0) @ cHOL4.list.NIL)) @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.prelim.list_merge @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X2))) @ ((cHOL4.list.CONS @ X3) @ X2))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.prelim.list_merge @ X1) @ ((cHOL4.list.CONS @ X5) @ X0)) @ ((cHOL4.list.CONS @ X4) @ X6))) @ (((cHOL4.bool.COND @ ((X1 @ X5) @ X4)) @ ((cHOL4.list.CONS @ X5) @ (((cHOL4.prelim.list_merge @ X1) @ X0) @ ((cHOL4.list.CONS @ X4) @ X6)))) @ ((cHOL4.list.CONS @ X4) @ (((cHOL4.prelim.list_merge @ X1) @ ((cHOL4.list.CONS @ X5) @ X0)) @ X6))))))))))))))))) (Tprim_rec.LESS_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X2 @ (cHOL4.num.SUC @ X1))) @ (X2 @ X1))))) @ ((cHOL4.bool./\ @ (X2 @ X0)) @ (cHOL4.bool.~ @ (X2 @ X1)))))))))))) (Tprim_rec.SIMP_REC_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.prim_rec.SIMP_REC_REL @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ X4))) @ (X2 @ (X0 @ X4))))))))))))))))) (Tprim_rec.SIMP_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((((cHOL4.prim_rec.SIMP_REC_REL @ X3) @ X0) @ X1) @ (cHOL4.num.SUC @ X2))) @ ((cHOL4.min.= @ (((cHOL4.prim_rec.SIMP_REC @ X0) @ X1) @ X2)) @ (X3 @ X2)))))))))))) (Tprim_rec.PRE_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ cHOL4.num.0) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X1))))))))) (Tprim_rec.PRIM_REC_FUN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.PRIM_REC_FUN @ X0) @ X1)) @ ((cHOL4.prim_rec.SIMP_REC @ (^[X2]: X0)) @ (^[X3]: (^[X2]: ((X1 @ (X3 @ (cHOL4.prim_rec.PRE @ X2))) @ X2)))))))))) (Tprim_rec.PRIM_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.prim_rec.PRIM_REC @ X0) @ X1) @ X2)) @ ((((cHOL4.prim_rec.PRIM_REC_FUN @ X0) @ X1) @ X2) @ (cHOL4.prim_rec.PRE @ X2)))))))))) (Tprim_rec.wellfounded_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.wellfounded @ X0)) @ (cHOL4.bool.~ @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (X1 @ (cHOL4.num.SUC @ X2))) @ (X1 @ X2))))))))))) (Tprim_rec.measure_def,((cHOL4.min.= @ cHOL4.prim_rec.measure) @ (cHOL4.relation.inv_image @ cHOL4.prim_rec.<))) (Tprim_rec.INV_SUC_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tprim_rec.LESS_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X0) @ X0))))) (Tprim_rec.SUC_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tprim_rec.NOT_LESS_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X0) @ cHOL4.num.0))))) (Tprim_rec.LESS_0_0,((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.num.SUC @ cHOL4.num.0))) (Tprim_rec.LESS_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X0)) @ (cHOL4.num.SUC @ X1)))))))) (Tprim_rec.LESS_SUC_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X0))))) (Tprim_rec.LESS_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tprim_rec.LESS_LEMMA1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Tprim_rec.LESS_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1)))))))) (Tprim_rec.LESS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Tprim_rec.LESS_SUC_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Tprim_rec.LESS_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.num.SUC @ X0))))) (Tprim_rec.EQ_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Tprim_rec.SUC_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ X0))))) (Tprim_rec.NOT_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Tprim_rec.LESS_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tprim_rec.SIMP_REC_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((((cHOL4.prim_rec.SIMP_REC_REL @ X3) @ X0) @ X1) @ X2)))))))))) (Tprim_rec.SIMP_REC_REL_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.prim_rec.SIMP_REC_REL @ X2) @ X0) @ X1) @ X4)) @ ((((cHOL4.prim_rec.SIMP_REC_REL @ X3) @ X0) @ X1) @ X5))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X6) @ X4)) @ ((cHOL4.prim_rec.< @ X6) @ X5))) @ ((cHOL4.min.= @ (X2 @ X6)) @ (X3 @ X6))))))))))))))))))) (Tprim_rec.SIMP_REC_REL_UNIQUE_RESULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.?! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((((cHOL4.prim_rec.SIMP_REC_REL @ X4) @ X0) @ X1) @ (cHOL4.num.SUC @ X2))) @ ((cHOL4.min.= @ X3) @ (X4 @ X2)))))))))))))) (Tprim_rec.LESS_SUC_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X0))))))) (Tprim_rec.SIMP_REC_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.prim_rec.SIMP_REC @ X0) @ X1) @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.prim_rec.SIMP_REC @ X0) @ X1) @ (cHOL4.num.SUC @ X2))) @ (X1 @ (((cHOL4.prim_rec.SIMP_REC @ X0) @ X1) @ X2))))))))))) (Tprim_rec.PRE,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ cHOL4.num.0)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.prim_rec.PRE @ (cHOL4.num.SUC @ X0))) @ X0))))) (Tprim_rec.PRIM_REC_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prim_rec.PRIM_REC_FUN @ X0) @ X1) @ cHOL4.num.0) @ X2)) @ X0)))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.prim_rec.PRIM_REC_FUN @ X0) @ X1) @ (cHOL4.num.SUC @ X3)) @ X2)) @ ((X1 @ ((((cHOL4.prim_rec.PRIM_REC_FUN @ X0) @ X1) @ X3) @ (cHOL4.prim_rec.PRE @ X2))) @ X2)))))))))))) (Tprim_rec.PRIM_REC_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.prim_rec.PRIM_REC @ X0) @ X1) @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.prim_rec.PRIM_REC @ X0) @ X1) @ (cHOL4.num.SUC @ X2))) @ ((X1 @ (((cHOL4.prim_rec.PRIM_REC @ X0) @ X1) @ X2)) @ X2)))))))))) (Tprim_rec.DC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ ((X1 @ X3) @ X4))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X5 @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.bool./\ @ (X0 @ (X5 @ X6))) @ ((X1 @ (X5 @ X6)) @ (X5 @ (cHOL4.num.SUC @ X6))))))))))))))))) (Tprim_rec.num_Axiom_old,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ X3))) @ ((X1 @ (X2 @ X3)) @ X3)))))))))))) (Tprim_rec.num_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ X3))) @ ((X1 @ X3) @ (X2 @ X3))))))))))))) (Tprim_rec.WF_IFF_WELLFOUNDED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WF @ X0)) @ (cHOL4.prim_rec.wellfounded @ X0))))) (Tprim_rec.WF_PRED,(cHOL4.relation.WF @ (^[X0]: (^[X1]: ((cHOL4.min.= @ X1) @ (cHOL4.num.SUC @ X0)))))) (Tprim_rec.WF_LESS,(cHOL4.relation.WF @ cHOL4.prim_rec.<)) (Tprim_rec.WF_measure,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.WF @ (cHOL4.prim_rec.measure @ X0))))) (Tprim_rec.measure_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.prim_rec.measure @ X0) @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ (X0 @ X1)) @ (X0 @ X2)))))))))) (TprimeFactor.PRIME_FACTORS_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ (cHOL4.primeFactor.PRIME_FACTORS @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X1) @ (cHOL4.primeFactor.PRIME_FACTORS @ X0))) @ (cHOL4.divides.prime @ X1))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_GEN_PROD @ (cHOL4.primeFactor.PRIME_FACTORS @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (TprimeFactor.PRIME_FACTORS_EXIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X2) @ X1)) @ (cHOL4.divides.prime @ X2))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_GEN_PROD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (TprimeFactor.UNIQUE_PRIME_FACTORS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X3) @ X1)) @ (cHOL4.divides.prime @ X3))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_GEN_PROD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X3) @ X2)) @ (cHOL4.divides.prime @ X3))))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.bag.BAG_GEN_PROD @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (TprimeFactor.PRIME_FACTORIZATION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bag.FINITE_BAG @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bag.BAG_IN @ X2) @ X1)) @ (cHOL4.divides.prime @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.bag.BAG_GEN_PROD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) @ ((cHOL4.min.= @ X1) @ (cHOL4.primeFactor.PRIME_FACTORS @ X0))))))))) (TprimeFactor.PRIME_FACTORS_1,((cHOL4.min.= @ (cHOL4.primeFactor.PRIME_FACTORS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.bag.EMPTY_BAG)) (TprimeFactor.PRIME_FACTOR_DIVIDES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.bag.BAG_IN @ X0) @ (cHOL4.primeFactor.PRIME_FACTORS @ X1)))) @ ((cHOL4.divides.divides @ X0) @ X1))))))) (TprimeFactor.DIVISOR_IN_PRIME_FACTORS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.divides.divides @ X0) @ X1)))) @ ((cHOL4.bag.BAG_IN @ X0) @ (cHOL4.primeFactor.PRIME_FACTORS @ X1)))))))) (TprimeFactor.PRIME_FACTORS_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.min.= @ (cHOL4.primeFactor.PRIME_FACTORS @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ ((cHOL4.bag.BAG_UNION @ (cHOL4.primeFactor.PRIME_FACTORS @ X0)) @ (cHOL4.primeFactor.PRIME_FACTORS @ X1))))))))) (TprimeFactor.FACTORS_prime,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.min.= @ (cHOL4.primeFactor.PRIME_FACTORS @ X0)) @ ((cHOL4.bag.BAG_INSERT @ X0) @ cHOL4.bag.EMPTY_BAG)))))) (TprimeFactor.PRIME_FACTORS_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.divides.prime @ X0)) @ ((cHOL4.min.= @ ((cHOL4.primeFactor.PRIME_FACTORS @ ((cHOL4.arithmetic.EXP @ X0) @ X1)) @ X0)) @ X1))))))) (Tprobability.p_space_def,((cHOL4.min.= @ cHOL4.probability.p_space) @ cHOL4.measure.m_space)) (Tprobability.events_def,((cHOL4.min.= @ cHOL4.probability.events) @ cHOL4.measure.measurable_sets)) (Tprobability.prob_def,((cHOL4.min.= @ cHOL4.probability.prob) @ cHOL4.measure.measure)) (Tprobability.prob_space_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.measure_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.measure.measure @ X0) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tprobability.indep_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.probability.indep @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2))))))))))))) (Tprobability.probably_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.probability.probably @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tprobability.possibly_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.probability.possibly @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tprobability.random_variable_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.probability.random_variable @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X1)) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.probability.p_space @ X1)) @ (cHOL4.probability.events @ X1))) @ X2))))))))))) (Tprobability.real_random_variable_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.probability.real_random_variable @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.p_space @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.NegInf))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.extreal.PosInf))))))) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.measure.measurable @ ((cHOL4.pair.|comma| @ (cHOL4.probability.p_space @ X1)) @ (cHOL4.probability.events @ X1))) @ cHOL4.measure.Borel)))))))))) (Tprobability.distribution_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.probability.distribution @ X0) @ X1)) @ (^[X2]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X1) @ X2)) @ (cHOL4.probability.p_space @ X0)))))))))) (Tprobability.joint_distribution_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2)) @ (^[X3]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ (^[X4]: ((cHOL4.pair.|comma| @ (X1 @ X4)) @ (X2 @ X4)))) @ X3)) @ (cHOL4.probability.p_space @ X0)))))))))))) (Tprobability.joint_distribution3_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.probability.joint_distribution3 @ X0) @ X1) @ X2) @ X3)) @ (^[X4]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ (^[X5]: ((cHOL4.pair.|comma| @ (X1 @ X5)) @ ((cHOL4.pair.|comma| @ (X2 @ X5)) @ (X3 @ X5))))) @ X4)) @ (cHOL4.probability.p_space @ X0)))))))))))))) (Tprobability.conditional_distribution_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.probability.conditional_distribution @ X0) @ X1) @ X2) @ X3) @ X4)) @ ((cHOL4.real./ @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ (((cHOL4.probability.distribution @ X0) @ X2) @ X4)))))))))))))) (Tprobability.expectation_def,((cHOL4.min.= @ cHOL4.probability.expectation) @ cHOL4.lebesgue.integral)) (Tprobability.conditional_expectation_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.probability.conditional_expectation @ X0) @ X1) @ X2)) @ (cHOL4.min.|at| @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.probability.real_random_variable @ X3) @ X0)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.lebesgue.integral @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_mul @ (X3 @ X5)) @ ((cHOL4.measure.indicator_fn @ X4) @ X5))))) @ ((cHOL4.lebesgue.integral @ X0) @ (^[X5]: ((cHOL4.extreal.extreal_mul @ (X1 @ X5)) @ ((cHOL4.measure.indicator_fn @ X4) @ X5))))))))))))))))))) (Tprobability.conditional_prob_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.probability.conditional_prob @ X0) @ X1) @ X2)) @ (((cHOL4.probability.conditional_expectation @ X0) @ (cHOL4.measure.indicator_fn @ X1)) @ X2))))))))) (Tprobability.rv_conditional_expectation_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.probability.rv_conditional_expectation @ X0) @ X1) @ X2) @ X3)) @ (((cHOL4.probability.conditional_expectation @ X0) @ X2) @ ((cHOL4.pred_set.IMAGE @ (^[X4]: ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X3) @ X4)) @ (cHOL4.probability.p_space @ X0)))) @ (cHOL4.measure.subsets @ X1))))))))))))) (Tprobability.indep_rv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((((cHOL4.probability.indep_rv @ X0) @ X1) @ X2) @ X3) @ X4)) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ (cHOL4.measure.subsets @ X3))) @ ((cHOL4.bool.IN @ X6) @ (cHOL4.measure.subsets @ X4)))) @ (((cHOL4.probability.indep @ X0) @ ((cHOL4.util_prob.PREIMAGE @ X1) @ X5)) @ ((cHOL4.util_prob.PREIMAGE @ X2) @ X6))))))))))))))))))) (Tprobability.uniform_distribution_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.probability.uniform_distribution @ X0) @ X1) @ X2)) @ (^[X3]: ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X3))) @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ (cHOL4.measure.space @ X2))))))))))))) (Tprobability.POSITIVE_PROB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.probability.prob @ X0) @ X1)))))))))) (Tprobability.INCREASING_PROB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.increasing @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)))) @ ((cHOL4.real.real_lte @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2))))))))))) (Tprobability.ADDITIVE_PROB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.additive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2)))))))))))) (Tprobability.COUNTABLY_ADDITIVE_PROB,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.measure.countably_additive @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X2)) @ (X1 @ X3)))))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))) @ (cHOL4.probability.events @ X0))))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.probability.prob @ X0)) @ X1)) @ ((cHOL4.probability.prob @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))))))))))) (Tprobability.PROB_SPACE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.probability.p_space @ X0)) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.measure.positive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.measure.countably_additive @ X0)) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Tprobability.EVENTS_SIGMA_ALGEBRA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ (cHOL4.measure.sigma_algebra @ ((cHOL4.pair.|comma| @ (cHOL4.probability.p_space @ X0)) @ (cHOL4.probability.events @ X0))))))) (Tprobability.EVENTS_ALGEBRA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ (cHOL4.measure.algebra @ ((cHOL4.pair.|comma| @ (cHOL4.probability.p_space @ X0)) @ (cHOL4.probability.events @ X0))))))) (Tprobability.PROB_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tprobability.PROB_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tprobability.PROB_SPACE_POSITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ (cHOL4.measure.positive @ X0))))) (Tprobability.PROB_SPACE_COUNTABLY_ADDITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ (cHOL4.measure.countably_additive @ X0))))) (Tprobability.PROB_SPACE_ADDITIVE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ (cHOL4.measure.additive @ X0))))) (Tprobability.PROB_SPACE_INCREASING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ (cHOL4.measure.increasing @ X0))))) (Tprobability.PROB_POSITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.probability.prob @ X0) @ X1)))))))) (Tprobability.PROB_INCREASING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2))))) @ ((cHOL4.real.real_lte @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2)))))))))) (Tprobability.PROB_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)) @ ((cHOL4.min.= @ X3) @ ((cHOL4.pred_set.UNION @ X1) @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X3)) @ ((cHOL4.realax.real_add @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2))))))))))))) (Tprobability.PROB_COUNTABLY_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X3)) @ (X2 @ X4)))))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))))))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.probability.prob @ X0)) @ X2)) @ ((cHOL4.probability.prob @ X0) @ X1)))))))))) (Tprobability.PROB_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.DIFF @ (cHOL4.probability.p_space @ X0)) @ X1))) @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.probability.prob @ X0) @ X1))))))))) (Tprobability.PROB_INDEP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.probability.indep @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ X3) @ ((cHOL4.pred_set.INTER @ X1) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X3)) @ ((cHOL4.realax.real_mul @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2))))))))))))) (Tprobability.PSPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.probability.p_space @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X0)))))))) (Tprobability.EVENTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.probability.events @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X1)))))))) (Tprobability.PROB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.probability.prob @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ X2)))))))) (Tprobability.EVENTS_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X1) @ X2)) @ (cHOL4.probability.events @ X0)))))))))) (Tprobability.EVENTS_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ (cHOL4.probability.events @ X0)))))) (Tprobability.EVENTS_SPACE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.probability.p_space @ X0)) @ (cHOL4.probability.events @ X0)))))) (Tprobability.EVENTS_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.UNION @ X1) @ X2)) @ (cHOL4.probability.events @ X0)))))))))) (Tprobability.INDEP_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ (((cHOL4.probability.indep @ X0) @ cHOL4.pred_set.EMPTY) @ X1))))))) (Tprobability.INTER_PSPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ (cHOL4.probability.p_space @ X0)) @ X1)) @ X1))))))) (Tprobability.INDEP_SPACE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ (((cHOL4.probability.indep @ X0) @ (cHOL4.probability.p_space @ X0)) @ X1))))))) (Tprobability.EVENTS_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ X1) @ X2)) @ (cHOL4.probability.events @ X0)))))))))) (Tprobability.EVENTS_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.DIFF @ (cHOL4.probability.p_space @ X0)) @ X1)) @ (cHOL4.probability.events @ X0)))))))) (Tprobability.EVENTS_COUNTABLE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.probability.events @ X0))) @ (cHOL4.util_prob.countable @ X1)))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X1)) @ (cHOL4.probability.events @ X0)))))))) (Tprobability.PROB_ZERO_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.probability.prob @ X0) @ X1)))))))))) (Tprobability.PROB_EQ_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.DIFF @ (cHOL4.probability.p_space @ X0)) @ X1))) @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.DIFF @ (cHOL4.probability.p_space @ X0)) @ X2))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.probability.prob @ X0) @ X2)))))))))) (Tprobability.PROB_ONE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X2)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.probability.prob @ X0) @ X1)))))))))) (Tprobability.EVENTS_COUNTABLE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGINTER @ X1)) @ (cHOL4.probability.events @ X0)))))))) (Tprobability.ABS_PROB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.probability.prob @ X0) @ X1))) @ ((cHOL4.probability.prob @ X0) @ X1)))))))) (Tprobability.PROB_COMPL_LE1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.DIFF @ (cHOL4.probability.p_space @ X0)) @ X1))) @ X2)) @ ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.probability.prob @ X0) @ X1))))))))))) (Tprobability.PROB_LE_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.real.real_lte @ ((cHOL4.probability.prob @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tprobability.PROB_EQ_BIGUNION_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.probability.events @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.probability.events @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X3)) @ (X1 @ X4)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X0 @ X3)) @ (X0 @ X4)))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.probability.prob @ X2) @ (X1 @ X4))) @ ((cHOL4.probability.prob @ X2) @ (X0 @ X4))))))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X2) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))) @ ((cHOL4.probability.prob @ X2) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV)))))))))))) (Tprobability.PROB_FINITELY_ADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ (cHOL4.pred_set.count @ X3)) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X5) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5))))) @ ((cHOL4.pred_set.DISJOINT @ (X2 @ X4)) @ (X2 @ X5)))))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.pred_set.count @ X3)))))))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X3)) @ ((cHOL4.combin.o @ (cHOL4.probability.prob @ X0)) @ X2))) @ ((cHOL4.probability.prob @ X0) @ X1)))))))))))) (Tprobability.ABS_1_MINUS_PROB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.probability.prob @ X0) @ X1)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tprobability.PROB_INCREASING_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.pred_set.SUBSET @ (X2 @ X3)) @ (X2 @ (cHOL4.num.SUC @ X3)))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X2) @ cHOL4.pred_set.UNIV))))))) @ ((cHOL4.seq.--> @ ((cHOL4.combin.o @ (cHOL4.probability.prob @ X0)) @ X2)) @ ((cHOL4.probability.prob @ X0) @ X1)))))))))) (Tprobability.PROB_SUBADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.pred_set.UNION @ X2) @ X3)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.realax.real_add @ ((cHOL4.probability.prob @ X0) @ X2)) @ ((cHOL4.probability.prob @ X0) @ X3))))))))))))) (Tprobability.PROB_COUNTABLY_SUBADDITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)) @ (cHOL4.probability.events @ X0))) @ (cHOL4.seq.summable @ ((cHOL4.combin.o @ (cHOL4.probability.prob @ X0)) @ X1))))) @ ((cHOL4.real.real_lte @ ((cHOL4.probability.prob @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV)))) @ (cHOL4.seq.suminf @ ((cHOL4.combin.o @ (cHOL4.probability.prob @ X0)) @ X1))))))))) (Tprobability.PROB_COUNTABLY_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ (cHOL4.probability.events @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ (cHOL4.pred_set.BIGUNION @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Tprobability.INDEP_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ (((cHOL4.probability.indep @ X0) @ X1) @ X2))) @ (((cHOL4.probability.indep @ X0) @ X2) @ X1))))))))) (Tprobability.INDEP_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0)))) @ ((cHOL4.min.= @ (((cHOL4.probability.indep @ X0) @ X1) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tprobability.PROB_REAL_SUM_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0)))))) @ (cHOL4.pred_set.FINITE @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X2]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))) @ X1)))))))) (Tprobability.PROB_EQUIPROBABLE_FINITE_UNIONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ X3) @ cHOL4.pred_set.EMPTY))))))))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X1))) @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ (cHOL4.pred_set.CHOICE @ X1)) @ cHOL4.pred_set.EMPTY)))))))))) (Tprobability.PROB_REAL_SUM_IMAGE_FN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INTER @ X2) @ (X1 @ X4))) @ (cHOL4.probability.events @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5))))) @ ((cHOL4.pred_set.DISJOINT @ (X1 @ X4)) @ (X1 @ X5)))))))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X1) @ X3))) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.probability.p_space @ X0)))))))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ X2)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ X2) @ (X1 @ X4))))) @ X3)))))))))))) (Tprobability.PROB_REAL_SUM_IMAGE_SPACE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0)))))) @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X1]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Tprobability.PROB_DISCRETE_EVENTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X2) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))))))))) (Tprobability.PROB_DISCRETE_EVENTS_COUNTABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X2) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.events @ X0))))))))) (Tprobability.marginal_joint_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X1) @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X2) @ X4)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))) (Tprobability.marginal_joint_zero3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X1) @ X4)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X2) @ X5)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X3) @ X6)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (((((cHOL4.probability.joint_distribution3 @ X0) @ X1) @ X2) @ X3) @ ((cHOL4.pred_set.CROSS @ X4) @ ((cHOL4.pred_set.CROSS @ X5) @ X6)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))))))))))) (Tprobability.distribution_prob_space,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.probability.random_variable @ X1) @ X0) @ X2)) @ (cHOL4.probability.prob_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X2)) @ ((cHOL4.probability.distribution @ X0) @ X1)))))))))))) (Tprobability.uniform_distribution_prob_space,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.measure.space @ X2))) @ (((cHOL4.probability.random_variable @ X0) @ X1) @ X2)))) @ (cHOL4.probability.prob_space @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X2)) @ (((cHOL4.probability.uniform_distribution @ X1) @ X0) @ X2)))))))))))) (Tprobability.distribution_partition,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ (((cHOL4.probability.random_variable @ X1) @ X0) @ cHOL4.measure.Borel))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: (((cHOL4.probability.distribution @ X0) @ X1) @ ((cHOL4.pred_set.INSERT @ X3) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tprobability.distribution_lebesgue_thm1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X0) @ X1) @ X2)) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X2)))) @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ (((cHOL4.probability.distribution @ X1) @ X0) @ X3))) @ ((cHOL4.lebesgue.integral @ X1) @ (cHOL4.measure.indicator_fn @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X3)) @ (cHOL4.probability.p_space @ X1))))))))))))))) (Tprobability.distribution_lebesgue_thm2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X0) @ X1) @ X2)) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.measure.subsets @ X2)))) @ ((cHOL4.min.= @ (cHOL4.extreal.Normal @ (((cHOL4.probability.distribution @ X1) @ X0) @ X3))) @ ((cHOL4.lebesgue.integral @ ((cHOL4.pair.|comma| @ (cHOL4.measure.space @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.measure.subsets @ X2)) @ ((cHOL4.probability.distribution @ X1) @ X0)))) @ (cHOL4.measure.indicator_fn @ X3))))))))))))) (Tprobability.finite_expectation1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.probability.real_random_variable @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.expectation @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.probability.p_space @ X0))))))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))))))) (Tprobability.finite_expectation2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))) @ ((cHOL4.probability.real_random_variable @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.expectation @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.probability.p_space @ X0))))))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))))))) (Tprobability.finite_expectation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.probability.real_random_variable @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.expectation @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ (((cHOL4.probability.distribution @ X0) @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))))))) (Tprobability.finite_support_expectation,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))) @ ((cHOL4.probability.real_random_variable @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.expectation @ X0) @ X1)) @ ((cHOL4.extreal.EXTREAL_SUM_IMAGE @ (^[X2]: ((cHOL4.extreal.extreal_mul @ X2) @ (cHOL4.extreal.Normal @ (((cHOL4.probability.distribution @ X0) @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))))))) (Tprobability.finite_marginal_product_space_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X1) @ X0) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X2) @ X0) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0)))))) @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0)))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0)))) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0))))) @ (^[X3]: ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ (^[X4]: ((cHOL4.pair.|comma| @ (X1 @ X4)) @ (X2 @ X4)))) @ X3)) @ (cHOL4.probability.p_space @ X0))))))))))))))) (Tprobability.finite_marginal_product_space_POW2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X3) @ X0) @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.pred_set.POW @ X1)))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X4) @ X0) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.pred_set.POW @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2))))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ X1) @ X2))) @ (((cHOL4.probability.joint_distribution @ X0) @ X3) @ X4)))))))))))))))) (Tprobability.finite_marginal_product_space_POW3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X4) @ X0) @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.pred_set.POW @ X1)))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X5) @ X0) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.pred_set.POW @ X2)))) @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X6) @ X0) @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.pred_set.POW @ X3)))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ (cHOL4.pred_set.FINITE @ X3))))))))) @ (cHOL4.measure.measure_space @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ X1) @ ((cHOL4.pred_set.CROSS @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.CROSS @ X1) @ ((cHOL4.pred_set.CROSS @ X2) @ X3)))) @ ((((cHOL4.probability.joint_distribution3 @ X0) @ X4) @ X5) @ X6)))))))))))))))))))) (Tprobability.prob_x_eq_1_imp_prob_y_eq_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.probability.events @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.probability.prob @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))) (Tprobability.distribution_x_eq_1_imp_distribution_y_eq_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.probability.random_variable @ X0) @ X1) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.probability.p_space @ X1))) @ (cHOL4.pred_set.POW @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.probability.p_space @ X1)))))) @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X1) @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X1) @ X0) @ ((cHOL4.pred_set.INSERT @ X3) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))) (Tprobability.joint_distribution_sym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ ((((cHOL4.probability.joint_distribution @ X0) @ X2) @ X1) @ ((cHOL4.pred_set.CROSS @ X4) @ X3))))))))))))))) (Tprobability.joint_distribution_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ X3)))))))))))) (Tprobability.joint_distribution_le_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Tprobability.joint_distribution_le,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ (((cHOL4.probability.distribution @ X0) @ X1) @ X3)))))))))))))) (Tprobability.joint_distribution_le2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ (((cHOL4.probability.distribution @ X0) @ X2) @ X4)))))))))))))) (Tprobability.joint_conditional,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.min.= @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ ((cHOL4.realax.real_mul @ (((((cHOL4.probability.conditional_distribution @ X0) @ X2) @ X1) @ X4) @ X3)) @ (((cHOL4.probability.distribution @ X0) @ X1) @ X3))))))))))))))) (Tprobability.distribution_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (((cHOL4.probability.distribution @ X0) @ X1) @ X2)))))))))) (Tprobability.conditional_distribution_pos,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (((((cHOL4.probability.conditional_distribution @ X0) @ X1) @ X2) @ X3) @ X4)))))))))))))) (Tprobability.conditional_distribution_le_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real.real_lte @ (((((cHOL4.probability.conditional_distribution @ X0) @ X1) @ X2) @ X3) @ X4)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tprobability.marginal_distribution1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0)))))) @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X1) @ X3)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ X3) @ ((cHOL4.pred_set.INSERT @ X4) @ cHOL4.pred_set.EMPTY))))) @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0)))))))))))))) (Tprobability.marginal_distribution2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0)))))) @ ((cHOL4.min.= @ (((cHOL4.probability.distribution @ X0) @ X2) @ X3)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.INSERT @ X4) @ cHOL4.pred_set.EMPTY)) @ X3)))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))))))))))) (Tprobability.joint_distribution_sums_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0)))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ cHOL4.pred_set.EMPTY)))))) @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tprobability.joint_distribution_sum_mul1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.probability.prob_space @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.min.= @ (cHOL4.probability.events @ X0)) @ (cHOL4.pred_set.POW @ (cHOL4.probability.p_space @ X0)))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.realax.real_mul @ ((((cHOL4.probability.joint_distribution @ X0) @ X1) @ X2) @ ((cHOL4.pred_set.INSERT @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ cHOL4.pred_set.EMPTY))) @ (X3 @ X4)))))) @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0))) @ ((cHOL4.pred_set.IMAGE @ X2) @ (cHOL4.probability.p_space @ X0))))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((cHOL4.realax.real_mul @ (((cHOL4.probability.distribution @ X0) @ X1) @ ((cHOL4.pred_set.INSERT @ X4) @ cHOL4.pred_set.EMPTY))) @ (X3 @ X4)))) @ ((cHOL4.pred_set.IMAGE @ X1) @ (cHOL4.probability.p_space @ X0)))))))))))))) (TquantHeuristics.GUESS_EXISTS_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.? @ (^[X3]: (X1 @ (X0 @ X3))))))))))) (TquantHeuristics.GUESS_FORALL_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.! @ (^[X3]: (X1 @ (X0 @ X3))))))))))) (TquantHeuristics.GUESS_EXISTS_POINT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X1 @ (X0 @ X2)))))))))) (TquantHeuristics.GUESS_FORALL_POINT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ (X1 @ (X0 @ X2))))))))))) (TquantHeuristics.GUESS_EXISTS_GAP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X0 @ X3))))))))))))) (TquantHeuristics.GUESS_FORALL_GAP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X0 @ X3))))))))))))) (TquantHeuristics.IS_REMOVABLE_QUANT_FUN_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.quantHeuristics.IS_REMOVABLE_QUANT_FUN @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ (X0 @ X2)) @ X1))))))))) (TquantHeuristics.GUESS_EXISTS_FORALL_REWRITES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.? @ (^[X3]: (X1 @ (X0 @ X3))))))))) @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.~ @ (X1 @ (X0 @ X3))))))))))))))) (TquantHeuristics.GUESS_POINT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ cHOL4.bool.T))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))) @ cHOL4.bool.F)))))))) (TquantHeuristics.GUESS_REWRITES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.? @ (^[X3]: (X1 @ (X0 @ X3))))))))) @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.~ @ (X1 @ (X0 @ X3))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (X1 @ (X0 @ X3)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ (X1 @ (X0 @ X3))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X0 @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X0 @ X3))))))))))))))))))))) (TquantHeuristics.GUESS_EXISTS_POINT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.? @ X1)) @ cHOL4.bool.T))))))) (TquantHeuristics.GUESS_FORALL_POINT_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.! @ X1)) @ cHOL4.bool.F))))))) (TquantHeuristics.GUESS_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.? @ X1)) @ (cHOL4.bool.? @ (^[X2]: (X1 @ (X0 @ X2))))))))))) (TquantHeuristics.GUESS_FORALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.! @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X1 @ (X0 @ X2))))))))))) (TquantHeuristics.GUESSES_UEXISTS_THM1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X2]: X0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.?! @ X1)) @ ((cHOL4.bool./\ @ (X1 @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ ((cHOL4.min.= @ X3) @ X0)))))))))))) (TquantHeuristics.GUESSES_UEXISTS_THM2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X2]: X0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.?! @ X1)) @ (X1 @ X0)))))))) (TquantHeuristics.GUESSES_UEXISTS_THM3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X2]: X0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.?! @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ ((cHOL4.min.= @ X3) @ X0))))))))))) (TquantHeuristics.GUESSES_UEXISTS_THM4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X2]: X0)) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X3]: X0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.bool.?! @ X1)) @ cHOL4.bool.T)))))))) (TquantHeuristics.GUESSES_NEG_DUALITY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X1))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)))))))))))) (TquantHeuristics.GUESSES_NEG_REWRITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X2]: (X1 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X2]: (X1 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X2]: (X1 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X2]: (X1 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X2]: (X1 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X2]: (X1 @ X2)))))))))))))) (TquantHeuristics.GUESSES_WEAKEN_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ X1)))))))))) (TquantHeuristics.GUESS_RULES_EQUATION_EXISTS_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X1 @ X0)) @ (X2 @ X0))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X3]: X0)) @ (^[X4]: ((cHOL4.min.= @ (X1 @ X4)) @ (X2 @ X4)))))))))))) (TquantHeuristics.GUESS_RULES_EQUATION_FORALL_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ (X0 @ X3))) @ (X2 @ (X0 @ X3))))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X4]: ((cHOL4.min.= @ (X1 @ X4)) @ (X2 @ X4)))))))))))) (TquantHeuristics.GUESS_RULES_EQUATION_EXISTS_GAP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X1]: X0)) @ (^[X2]: ((cHOL4.min.= @ X2) @ X0)))))) (TquantHeuristics.GUESS_RULES_TRIVIAL_EXISTS_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X1 @ X0)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X2]: X0)) @ X1))))))) (TquantHeuristics.GUESS_RULES_TRIVIAL_FORALL_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X0))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ (^[X2]: X0)) @ X1))))))) (TquantHeuristics.GUESS_RULES_BOOL,((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X0]: cHOL4.bool.T)) @ (^[X1]: X1))) @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ (^[X0]: cHOL4.bool.F)) @ (^[X1]: X1))) @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X0]: cHOL4.bool.T)) @ (^[X1]: X1))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (^[X0]: cHOL4.bool.F)) @ (^[X1]: X1)))))) (TquantHeuristics.GUESS_RULES_TWO_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X1 @ X3)))))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ (^[X2]: ((cHOL4.min.= @ X2) @ X0))))))))) (TquantHeuristics.GUESS_RULES_ONE_CASE___FORALL_GAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X1 @ X3))))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ X0))))))) (TquantHeuristics.GUESS_RULES_ONE_CASE___EXISTS_GAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X2) @ (X1 @ X3))))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X1) @ X0))))))) (TquantHeuristics.GUESS_RULES_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))))))))))))) (TquantHeuristics.GUESS_RULES_CONSTANT_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X1) @ (^[X2]: X0))) @ cHOL4.bool.T)))))) (TquantHeuristics.GUESS_RULES_CONSTANT_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X1) @ (^[X2]: X0))) @ cHOL4.bool.T)))))) (TquantHeuristics.GUESS_RULES_DISJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X7]: X2)) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X7]: X2)) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X7]: X2)) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ X1) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: ((cHOL4.bool.\/ @ (X5 @ X6)) @ (X4 @ X6))))))))))))))))))))))))))) (TquantHeuristics.GUESS_RULES_CONJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X7]: X2)) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X7]: X2)) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X7]: X2)) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: ((cHOL4.bool./\ @ X1) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: ((cHOL4.bool./\ @ (X5 @ X6)) @ (X4 @ X6))))))))))))))))))))))))))) (TquantHeuristics.GUESS_RULES_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X7]: X2)) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X7]: X2)) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X7]: X2)) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X3) @ (^[X6]: ((cHOL4.min.==> @ X1) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: (X4 @ X6))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X3) @ (^[X6]: (X5 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6)))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: (X4 @ X6)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X3) @ (^[X6]: ((cHOL4.min.==> @ (X5 @ X6)) @ (X4 @ X6))))))))))))))))))))))))))) (TquantHeuristics.GUESS_RULES_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X1 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: ((cHOL4.min.= @ (X4 @ X5)) @ (X1 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X1 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: ((cHOL4.min.= @ (X4 @ X5)) @ (X1 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X1 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: ((cHOL4.min.= @ (X4 @ X5)) @ (X1 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X1 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: ((cHOL4.min.= @ (X4 @ X5)) @ (X1 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X3 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X2 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: ((cHOL4.min.= @ (X3 @ X5)) @ (X2 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X3 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X2 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: ((cHOL4.min.= @ (X3 @ X5)) @ (X2 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X3 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X2 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: ((cHOL4.min.= @ (X3 @ X5)) @ (X2 @ X5)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X3 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X2 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: ((cHOL4.min.= @ (X3 @ X5)) @ (X2 @ X5))))))))))))))))))))))) (TquantHeuristics.GUESS_RULES_COND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X5]: (((cHOL4.bool.COND @ X1) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X5]: (((cHOL4.bool.COND @ X1) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X4 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (X4 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (X4 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X4 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X3 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X2 @ X5)))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (X4 @ X5))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ (X4 @ X5)) @ (X3 @ X5))))))))))))))))))))))))))))) (TquantHeuristics.GUESS_RULES_FORALL___NEW_FV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X3) @ X2)))))))))))))) (TquantHeuristics.GUESS_RULES_FORALL___NEW_FV_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X4) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X0) @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X4) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X4) @ X2))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X4]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X4) @ X2)))))))))))))) (TquantHeuristics.GUESS_RULES_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X1) @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_FORALL @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X1) @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X1) @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X5]: X0)) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X5]: X0)) @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X1) @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((X2 @ X4) @ X3)))))))))))))))))) (TquantHeuristics.GUESS_RULES_EXISTS___NEW_FV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (X0 @ X2)) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (^[X4]: ((X0 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X3) @ X2)))))))))))))) (TquantHeuristics.GUESS_RULES_EXISTS___NEW_FV_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X4) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X0) @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X4) @ X2))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X4) @ X2))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (^[X3]: (X0 @ X2))) @ (^[X4]: ((X1 @ X4) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((X1 @ X4) @ X2)))))))))))))) (TquantHeuristics.GUESS_RULES_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X1) @ (^[X4]: (cHOL4.bool.? @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_EXISTS @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X1) @ (^[X4]: (cHOL4.bool.? @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X1) @ (^[X4]: (cHOL4.bool.? @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X1) @ (^[X4]: (cHOL4.bool.? @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X5]: X0)) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X5]: X0)) @ (^[X4]: (cHOL4.bool.? @ (^[X3]: ((X2 @ X4) @ X3))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ (^[X4]: ((X2 @ X4) @ X3)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ (^[X4]: (cHOL4.bool.? @ (^[X3]: ((X2 @ X4) @ X3)))))))))))))))))) (TquantHeuristics.GUESS_RULES_EXISTS_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ (^[X3]: (cHOL4.bool.?! @ (^[X2]: ((X1 @ X3) @ X2))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ (^[X3]: (cHOL4.bool.?! @ (^[X2]: ((X1 @ X3) @ X2)))))))))))) (TquantHeuristics.GUESS_RULES_ELIM_UNIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X1) @ X0)) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.one.one)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X1) @ X0)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.one.one)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ X1) @ X0)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.one.one)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL @ X1) @ X0)) @ ((cHOL4.quantHeuristics.GUESS_FORALL @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.one.one)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X1) @ X0)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.one.one)))) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X1) @ X0)) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ (^[X2]: (X1 @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.one.one)))) @ X0)))))))))))) (TquantHeuristics.GUESS_RULES_STRENGTHEN_EXISTS_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ (X2 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_POINT @ X0) @ X2)))))))))) (TquantHeuristics.GUESS_RULES_STRENGTHEN_FORALL_GAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ (X2 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_FORALL_GAP @ X0) @ X2)))))))))) (TquantHeuristics.GUESS_RULES_WEAKEN_FORALL_POINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_FORALL_POINT @ X0) @ X2)))))))))) (TquantHeuristics.GUESS_RULES_WEAKEN_EXISTS_GAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ X1)) @ ((cHOL4.quantHeuristics.GUESS_EXISTS_GAP @ X0) @ X2)))))))))) (TquantHeuristics.CONJ_NOT_OR_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1))))))))) (TquantHeuristics.EXISTS_NOT_FORALL_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1))))))))) (TquantHeuristics.MOVE_EXISTS_IMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((X2 @ X3) @ X4))) @ (X0 @ X4))))) @ (X1 @ X3))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.bool.! @ (^[X3]: ((X2 @ X3) @ X4))))) @ (X0 @ X4))))) @ (cHOL4.bool.? @ (^[X3]: (X1 @ X3)))))))))))) (TquantHeuristics.UNWIND_EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X0))) @ (cHOL4.bool.~ @ (X1 @ X2)))))) @ (X1 @ X0)))))))) (TquantHeuristics.LEFT_IMP_AND_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ X0) @ X2)))))))))) (TquantHeuristics.RIGHT_IMP_AND_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X1) @ X0)) @ ((cHOL4.bool./\ @ X2) @ X0)))))))))) (TquantHeuristics.LEFT_IMP_OR_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X0) @ X1)) @ ((cHOL4.bool.\/ @ X0) @ X2)))))))))) (TquantHeuristics.RIGHT_IMP_OR_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X1) @ X0)) @ ((cHOL4.bool.\/ @ X2) @ X0)))))))))) (TquantHeuristics.IMP_NEG_CONTRA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X0 @ X1))) @ ((cHOL4.min.==> @ (X0 @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X1))))))))))) (TquantHeuristics.DISJ_IMP_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ (X2 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X2 @ X0))) @ (X1 @ X0))) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X0))) @ (X2 @ X0))))))))))) (TquantHeuristics.IS_REMOVABLE_QUANT_FUN___EXISTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quantHeuristics.IS_REMOVABLE_QUANT_FUN @ X0)) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (X1 @ (X0 @ X2))))) @ (cHOL4.bool.? @ (^[X3]: (X1 @ X3)))))))))) (TquantHeuristics.IS_REMOVABLE_QUANT_FUN___FORALL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quantHeuristics.IS_REMOVABLE_QUANT_FUN @ X0)) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: (X1 @ (X0 @ X2))))) @ (cHOL4.bool.! @ (^[X3]: (X1 @ X3)))))))))) (TquantHeuristics.PAIR_EQ_EXPAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (cHOL4.pair.FST @ X2))) @ ((cHOL4.min.= @ X0) @ (cHOL4.pair.SND @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.pair.|comma| @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X2)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.pair.SND @ X2)) @ X0))))))))))) (TquantHeuristics.PAIR_EQ_SIMPLE_EXPAND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ (cHOL4.pair.FST @ X3)) @ X1)) @ X3)) @ ((cHOL4.min.= @ X1) @ (cHOL4.pair.SND @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.pair.SND @ X3))) @ X3)) @ ((cHOL4.min.= @ X2) @ (cHOL4.pair.FST @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X3) @ ((cHOL4.pair.|comma| @ (cHOL4.pair.FST @ X3)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.pair.SND @ X3)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X3) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.pair.SND @ X3)))) @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X3)) @ X2)))))))))))))))) (TquantHeuristics.IS_SOME_EQ_NOT_NONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.option.NONE)))))) (TquantHeuristics.ISL_exists,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.ISL @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.sum.INL @ X1)))))))) (TquantHeuristics.ISR_exists,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.ISR @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.sum.INR @ X1)))))))) (TquantHeuristics.INL_NEQ_ELIM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.sum.INL @ X1)))))) @ (cHOL4.sum.ISR @ X0))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.sum.INL @ X1)) @ X0))))) @ (cHOL4.sum.ISR @ X0)))))) (TquantHeuristics.INR_NEQ_ELIM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.sum.INR @ X1)))))) @ (cHOL4.sum.ISL @ X0))) @ ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.sum.INR @ X1)) @ X0))))) @ (cHOL4.sum.ISL @ X0)))))) (TquantHeuristics.LENGTH_LE_PLUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.APPEND @ X3) @ X4)))))))))))))))) (TquantHeuristics.LENGTH_LE_NUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))))))))))))) (TquantHeuristics.LENGTH_NIL_SYM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (TquantHeuristics.LIST_LENGTH_COMPARE_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))))) (TquantHeuristics.LIST_LENGTH_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))))))) (TquantHeuristics.LIST_LENGTH_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X4)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X4))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X5)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X5))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X5)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X5))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_4,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X6))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X6)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X6))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X6)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X6))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_5,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X7))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X7)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X7))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X7)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X7))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X7)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X7))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_7,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X9)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X9))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X9)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X9))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X9)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X9))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X9)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X9))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_10,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X12)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X12))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X12)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X12))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X12)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X12))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X12)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X12))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X12)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X12))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X12)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X12))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_15,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X17))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X17)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X17))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X17)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X17))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X17)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X17))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X17)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X17))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X17)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X17))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X17)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X17))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X17)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X17))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X17)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X17))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_20,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X22))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X22)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X22))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X22)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X22))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X22)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X22))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X22)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X22))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X22)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X22))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X22)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X22))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X22)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X22))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X22)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X22))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_25,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: (cHOL4.bool.? @ (^[X26]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ ((cHOL4.list.CONS @ X26) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: (cHOL4.bool.? @ (^[X25]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ ((cHOL4.list.CONS @ X25) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: (cHOL4.bool.? @ (^[X24]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ ((cHOL4.list.CONS @ X24) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: (cHOL4.bool.? @ (^[X23]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ ((cHOL4.list.CONS @ X23) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: (cHOL4.bool.? @ (^[X22]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ ((cHOL4.list.CONS @ X22) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: (cHOL4.bool.? @ (^[X21]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ ((cHOL4.list.CONS @ X21) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: (cHOL4.bool.? @ (^[X20]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ ((cHOL4.list.CONS @ X20) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: (cHOL4.bool.? @ (^[X19]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ ((cHOL4.list.CONS @ X19) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: (cHOL4.bool.? @ (^[X18]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ ((cHOL4.list.CONS @ X18) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: (cHOL4.bool.? @ (^[X17]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ ((cHOL4.list.CONS @ X17) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27)))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: (cHOL4.bool.? @ (^[X16]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ ((cHOL4.list.CONS @ X16) @ X27))))))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: (cHOL4.bool.? @ (^[X15]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ ((cHOL4.list.CONS @ X15) @ X27)))))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27)))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: (cHOL4.bool.? @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ ((cHOL4.list.CONS @ X14) @ X27))))))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: (cHOL4.bool.? @ (^[X13]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ ((cHOL4.list.CONS @ X13) @ X27)))))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27)))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: (cHOL4.bool.? @ (^[X12]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ ((cHOL4.list.CONS @ X12) @ X27))))))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ cHOL4.list.NIL))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: (cHOL4.bool.? @ (^[X11]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ ((cHOL4.list.CONS @ X11) @ X27)))))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ cHOL4.list.NIL)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27)))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: (cHOL4.bool.? @ (^[X10]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ ((cHOL4.list.CONS @ X10) @ X27))))))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ cHOL4.list.NIL))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ ((cHOL4.list.CONS @ X9) @ X27)))))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ cHOL4.list.NIL)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27)))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ ((cHOL4.list.CONS @ X8) @ X27))))))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ cHOL4.list.NIL))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ ((cHOL4.list.CONS @ X7) @ X27)))))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ cHOL4.list.NIL)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27)))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ ((cHOL4.list.CONS @ X6) @ X27))))))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ cHOL4.list.NIL))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X5) @ X27)))))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27)))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.CONS @ X4) @ X27))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X27)))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X27))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X27]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X27)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X2) @ X27))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (TquantHeuristics.LIST_LENGTH_COMPARE_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X3) @ X2))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.>= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X3) @ X2))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X3) @ X2))))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.num.SUC @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ X0)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X3) @ X2)))))))))))))))) (Tquote.index_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ cHOL4.bool.ARB) @ ((cHOL4.ind_type.FCONS @ X3) @ (^[X4]: cHOL4.ind_type.BOTTOM)))) @ X3))) @ (X2 @ X3))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ cHOL4.bool.ARB) @ ((cHOL4.ind_type.FCONS @ X3) @ (^[X4]: cHOL4.ind_type.BOTTOM)))) @ X3))) @ (X2 @ X3))))) @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.bool.ARB) @ (^[X4]: cHOL4.ind_type.BOTTOM)))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tquote.index_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quote.index_CASE @ (cHOL4.quote.Left_idx @ X0)) @ X1) @ X2) @ X3)) @ (X1 @ X0))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quote.index_CASE @ (cHOL4.quote.Right_idx @ X0)) @ X1) @ X2) @ X3)) @ (X2 @ X0))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quote.index_CASE @ cHOL4.quote.End_idx) @ X1) @ X2) @ X3)) @ X3)))))))))) (Tquote.index_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.quote.index_size @ (cHOL4.quote.Left_idx @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.quote.index_size @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.quote.index_size @ (cHOL4.quote.Right_idx @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.quote.index_size @ X0)))))) @ ((cHOL4.min.= @ (cHOL4.quote.index_size @ cHOL4.quote.End_idx)) @ cHOL4.num.0)))) (Tquote.index_compare_tupled_primitive_def,((cHOL4.min.= @ cHOL4.quote.index_compare_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.quote.Left_idx @ X2)) @ (cHOL4.quote.Left_idx @ X1)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.quote.Right_idx @ X2)) @ (cHOL4.quote.Right_idx @ X1)))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((((cHOL4.quote.index_CASE @ X5) @ (^[X2]: ((((cHOL4.quote.index_CASE @ X6) @ (^[X1]: (cHOL4.combin.I @ (X3 @ ((cHOL4.pair.|comma| @ X2) @ X1))))) @ (^[X7]: (cHOL4.combin.I @ cHOL4.prelim.LESS))) @ (cHOL4.combin.I @ cHOL4.prelim.GREATER)))) @ (^[X8]: ((((cHOL4.quote.index_CASE @ X6) @ (^[X9]: (cHOL4.combin.I @ cHOL4.prelim.GREATER))) @ (^[X10]: (cHOL4.combin.I @ (X3 @ ((cHOL4.pair.|comma| @ X8) @ X10))))) @ (cHOL4.combin.I @ cHOL4.prelim.GREATER)))) @ ((((cHOL4.quote.index_CASE @ X6) @ (^[X11]: (cHOL4.combin.I @ cHOL4.prelim.LESS))) @ (^[X12]: (cHOL4.combin.I @ cHOL4.prelim.LESS))) @ (cHOL4.combin.I @ cHOL4.prelim.EQUAL))))))))))) (Tquote.index_compare_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ X0) @ X1)) @ (cHOL4.quote.index_compare_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tquote.index_lt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quote.index_lt @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ X0) @ X1)) @ cHOL4.prelim.LESS))))))) (Tquote.varmap_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ cHOL4.bool.ARB) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((((^[X4]: (^[X5]: (^[X6]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ X4) @ ((cHOL4.ind_type.FCONS @ X5) @ ((cHOL4.ind_type.FCONS @ X6) @ (^[X3]: cHOL4.ind_type.BOTTOM))))))) @ X4) @ X5) @ X6))) @ ((cHOL4.bool./\ @ (X2 @ X5)) @ (X2 @ X6))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tquote.varmap_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.quote.varmap_CASE @ cHOL4.quote.Empty_vm) @ X0) @ X1)) @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.quote.varmap_CASE @ (((cHOL4.quote.Node_vm @ X2) @ X3) @ X4)) @ X0) @ X1)) @ (((X1 @ X2) @ X3) @ X4)))))))))))))) (Tquote.varmap_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_size @ X0) @ cHOL4.quote.Empty_vm)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_size @ X0) @ (((cHOL4.quote.Node_vm @ X1) @ X2) @ X3))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.quote.varmap_size @ X0) @ X2)) @ ((cHOL4.quote.varmap_size @ X0) @ X3))))))))))))))) (Tquote.varmap_find_tupled_primitive_def,((cHOL4.min.= @ cHOL4.quote.varmap_find_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ (cHOL4.quote.Right_idx @ X4)) @ (((cHOL4.quote.Node_vm @ X2) @ X1) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.quote.Left_idx @ X4)) @ (((cHOL4.quote.Node_vm @ X2) @ X1) @ X3)))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (((cHOL4.quote.varmap_CASE @ X8) @ (cHOL4.combin.I @ (cHOL4.min.|at| @ (^[X2]: cHOL4.bool.T)))) @ (^[X2]: (^[X1]: (^[X3]: ((((cHOL4.quote.index_CASE @ X7) @ (^[X9]: (cHOL4.combin.I @ (X5 @ ((cHOL4.pair.|comma| @ X9) @ X1))))) @ (^[X4]: (cHOL4.combin.I @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X3))))) @ (cHOL4.combin.I @ X2)))))))))))))) (Tquote.varmap_find_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ X0) @ X1)) @ (cHOL4.quote.varmap_find_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tquote.datatype_index,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.quote.Left_idx) @ cHOL4.quote.Right_idx) @ cHOL4.quote.End_idx))))) (Tquote.index_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.quote.Left_idx @ X0)) @ (cHOL4.quote.Left_idx @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.quote.Right_idx @ X0)) @ (cHOL4.quote.Right_idx @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tquote.index_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.quote.Left_idx @ X1)) @ (cHOL4.quote.Right_idx @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.quote.Left_idx @ X1)) @ cHOL4.quote.End_idx))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.quote.Right_idx @ X1)) @ cHOL4.quote.End_idx))))))) (Tquote.index_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.quote.Left_idx @ X8))) @ ((cHOL4.min.= @ (X5 @ X8)) @ (X2 @ X8)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.quote.Right_idx @ X8))) @ ((cHOL4.min.= @ (X6 @ X8)) @ (X1 @ X8)))))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.quote.End_idx)) @ ((cHOL4.min.= @ X7) @ X0)))))) @ ((cHOL4.min.= @ ((((cHOL4.quote.index_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.quote.index_CASE @ X4) @ X2) @ X1) @ X0)))))))))))))))))))) (Tquote.index_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.quote.Left_idx @ X1))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.quote.Right_idx @ X1))))) @ ((cHOL4.min.= @ X0) @ cHOL4.quote.End_idx)))))) (Tquote.index_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.quote.Left_idx @ X4))) @ ((X0 @ X4) @ (X3 @ X4)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.quote.Right_idx @ X4))) @ ((X1 @ X4) @ (X3 @ X4)))))) @ ((cHOL4.min.= @ (X3 @ cHOL4.quote.End_idx)) @ X2)))))))))))) (Tquote.index_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.quote.Left_idx @ X1)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.quote.Right_idx @ X1)))))) @ (X0 @ cHOL4.quote.End_idx)))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tquote.index_compare_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.quote.End_idx) @ cHOL4.quote.End_idx)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.quote.End_idx) @ (cHOL4.quote.Left_idx @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X0 @ cHOL4.quote.End_idx) @ (cHOL4.quote.Right_idx @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((X0 @ (cHOL4.quote.Left_idx @ X3)) @ cHOL4.quote.End_idx)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((X0 @ (cHOL4.quote.Right_idx @ X4)) @ cHOL4.quote.End_idx)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X0 @ X5) @ X6)) @ ((X0 @ (cHOL4.quote.Left_idx @ X5)) @ (cHOL4.quote.Left_idx @ X6)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ (cHOL4.quote.Left_idx @ X5)) @ (cHOL4.quote.Right_idx @ X6))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X0 @ X5) @ X6)) @ ((X0 @ (cHOL4.quote.Right_idx @ X5)) @ (cHOL4.quote.Right_idx @ X6)))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ (cHOL4.quote.Right_idx @ X5)) @ (cHOL4.quote.Left_idx @ X6))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Tquote.index_compare_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ cHOL4.quote.End_idx) @ cHOL4.quote.End_idx)) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ cHOL4.quote.End_idx) @ (cHOL4.quote.Left_idx @ X0))) @ cHOL4.prelim.LESS)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ cHOL4.quote.End_idx) @ (cHOL4.quote.Right_idx @ X1))) @ cHOL4.prelim.LESS)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ (cHOL4.quote.Left_idx @ X2)) @ cHOL4.quote.End_idx)) @ cHOL4.prelim.GREATER)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ (cHOL4.quote.Right_idx @ X3)) @ cHOL4.quote.End_idx)) @ cHOL4.prelim.GREATER)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ (cHOL4.quote.Left_idx @ X4)) @ (cHOL4.quote.Left_idx @ X5))) @ ((cHOL4.quote.index_compare @ X4) @ X5))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ (cHOL4.quote.Left_idx @ X4)) @ (cHOL4.quote.Right_idx @ X5))) @ cHOL4.prelim.LESS)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ (cHOL4.quote.Right_idx @ X4)) @ (cHOL4.quote.Right_idx @ X5))) @ ((cHOL4.quote.index_compare @ X4) @ X5))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ (cHOL4.quote.Right_idx @ X4)) @ (cHOL4.quote.Left_idx @ X5))) @ cHOL4.prelim.GREATER)))))))))))))) (Tquote.compare_index_equal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.quote.index_compare @ X0) @ X1)) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tquote.compare_list_index,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X0) @ X1)) @ cHOL4.prelim.EQUAL)) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tquote.datatype_varmap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ ((X0 @ cHOL4.quote.Empty_vm) @ cHOL4.quote.Node_vm))))) (Tquote.varmap_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.quote.Node_vm @ X0) @ X1) @ X2)) @ (((cHOL4.quote.Node_vm @ X3) @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X4)) @ ((cHOL4.min.= @ X2) @ X5))))))))))))))))) (Tquote.varmap_distinct,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.quote.Empty_vm) @ (((cHOL4.quote.Node_vm @ X2) @ X1) @ X0)))))))))) (Tquote.varmap_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ cHOL4.quote.Empty_vm)) @ ((cHOL4.min.= @ X4) @ X0))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (((cHOL4.quote.Node_vm @ X6) @ X7) @ X8))) @ ((cHOL4.min.= @ (((X5 @ X6) @ X7) @ X8)) @ (((X1 @ X6) @ X7) @ X8)))))))))))) @ ((cHOL4.min.= @ (((cHOL4.quote.varmap_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.quote.varmap_CASE @ X3) @ X0) @ X1)))))))))))))))) (Tquote.varmap_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.quote.Empty_vm)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (((cHOL4.quote.Node_vm @ X1) @ X2) @ X3)))))))))))) (Tquote.varmap_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.quote.Empty_vm)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (X2 @ (((cHOL4.quote.Node_vm @ X3) @ X4) @ X5))) @ (((((X1 @ X3) @ X4) @ X5) @ (X2 @ X4)) @ (X2 @ X5))))))))))))))))) (Tquote.varmap_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.quote.Empty_vm)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ (((cHOL4.quote.Node_vm @ X3) @ X1) @ X2))))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Tquote.varmap_find_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ cHOL4.quote.End_idx) @ (((cHOL4.quote.Node_vm @ X1) @ X2) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ ((X0 @ (cHOL4.quote.Right_idx @ X4)) @ (((cHOL4.quote.Node_vm @ X1) @ X2) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X4) @ X2)) @ ((X0 @ (cHOL4.quote.Left_idx @ X4)) @ (((cHOL4.quote.Node_vm @ X1) @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X5]: ((X0 @ X5) @ cHOL4.quote.Empty_vm))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X6) @ X2))))))))) (Tquote.varmap_find_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ cHOL4.quote.End_idx) @ (((cHOL4.quote.Node_vm @ X0) @ X2) @ X1))) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Right_idx @ X3)) @ (((cHOL4.quote.Node_vm @ X0) @ X2) @ X1))) @ ((cHOL4.quote.varmap_find @ X3) @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Left_idx @ X3)) @ (((cHOL4.quote.Node_vm @ X0) @ X2) @ X1))) @ ((cHOL4.quote.varmap_find @ X3) @ X2))))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ X4) @ cHOL4.quote.Empty_vm)) @ (cHOL4.min.|at| @ (^[X0]: cHOL4.bool.T))))))))) (Tquotient_list.LIST_MAP_I,((cHOL4.min.= @ (cHOL4.list.MAP @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tquotient_list.LIST_REL_EQ,((cHOL4.min.= @ (cHOL4.list.LIST_REL @ cHOL4.min.=)) @ cHOL4.min.=)) (Tquotient_list.LIST_REL_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: (((cHOL4.list.LIST_REL @ X0) @ X3) @ X3))))))) (Tquotient_list.LIST_EQUIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ (cHOL4.quotient.EQUIV @ (cHOL4.list.LIST_REL @ X0)))))) (Tquotient_list.LIST_REL_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.list.LIST_REL @ X0) @ X4) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X1) @ X3)) @ ((cHOL4.list.MAP @ X1) @ X4))))))))))))))))) (Tquotient_list.LIST_QUOTIENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (((cHOL4.quotient.QUOTIENT @ (cHOL4.list.LIST_REL @ X0)) @ (cHOL4.list.MAP @ X1)) @ (cHOL4.list.MAP @ X2)))))))))) (Tquotient_list.CONS_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.list.CONS @ X4) @ X3)) @ ((cHOL4.list.MAP @ X1) @ ((cHOL4.list.CONS @ (X2 @ X4)) @ ((cHOL4.list.MAP @ X2) @ X3)))))))))))))))) (Tquotient_list.CONS_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X5) @ X6)) @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4))) @ (((cHOL4.list.LIST_REL @ X0) @ ((cHOL4.list.CONS @ X5) @ X3)) @ ((cHOL4.list.CONS @ X6) @ X4))))))))))))))))))) (Tquotient_list.NIL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ cHOL4.list.NIL) @ ((cHOL4.list.MAP @ X1) @ cHOL4.list.NIL)))))))))) (Tquotient_list.NIL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (((cHOL4.list.LIST_REL @ X0) @ cHOL4.list.NIL) @ cHOL4.list.NIL))))))))) (Tquotient_list.MAP_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X7) @ X6)) @ ((cHOL4.list.MAP @ X4) @ ((cHOL4.list.MAP @ (((cHOL4.quotient.--> @ X1) @ X5) @ X7)) @ ((cHOL4.list.MAP @ X2) @ X6))))))))))))))))))))))) (Tquotient_list.MAP_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X8) @ X9)) @ (((cHOL4.list.LIST_REL @ X0) @ X6) @ X7))) @ (((cHOL4.list.LIST_REL @ X3) @ ((cHOL4.list.MAP @ X8) @ X6)) @ ((cHOL4.list.MAP @ X9) @ X7)))))))))))))))))))))))))) (Tquotient_list.LENGTH_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ (cHOL4.list.LENGTH @ ((cHOL4.list.MAP @ X2) @ X3))))))))))))) (Tquotient_list.LENGTH_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X3)) @ (cHOL4.list.LENGTH @ X4))))))))))))))) (Tquotient_list.APPEND_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X3) @ X4)) @ ((cHOL4.list.MAP @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.list.MAP @ X2) @ X3)) @ ((cHOL4.list.MAP @ X2) @ X4)))))))))))))))) (Tquotient_list.APPEND_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4)) @ (((cHOL4.list.LIST_REL @ X0) @ X5) @ X6))) @ (((cHOL4.list.LIST_REL @ X0) @ ((cHOL4.list.APPEND @ X3) @ X5)) @ ((cHOL4.list.APPEND @ X4) @ X6))))))))))))))))))) (Tquotient_list.FLAT_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ X3)) @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.FLAT @ ((cHOL4.list.MAP @ (cHOL4.list.MAP @ X2)) @ X3)))))))))))))) (Tquotient_list.FLAT_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ (cHOL4.list.LIST_REL @ X0)) @ X3) @ X4)) @ (((cHOL4.list.LIST_REL @ X0) @ (cHOL4.list.FLAT @ X3)) @ (cHOL4.list.FLAT @ X4))))))))))))))) (Tquotient_list.REVERSE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X3)) @ ((cHOL4.list.MAP @ X1) @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ X2) @ X3)))))))))))))) (Tquotient_list.REVERSE_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4)) @ (((cHOL4.list.LIST_REL @ X0) @ (cHOL4.list.REVERSE @ X3)) @ (cHOL4.list.REVERSE @ X4))))))))))))))) (Tquotient_list.FILTER_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X3) @ X4)) @ ((cHOL4.list.MAP @ X1) @ ((cHOL4.list.FILTER @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ ((cHOL4.list.MAP @ X2) @ X4)))))))))))))))) (Tquotient_list.FILTER_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ (((cHOL4.list.LIST_REL @ X0) @ X5) @ X6))) @ (((cHOL4.list.LIST_REL @ X0) @ ((cHOL4.list.FILTER @ X3) @ X5)) @ ((cHOL4.list.FILTER @ X4) @ X6))))))))))))))))))) (Tquotient_list.NULL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.NULL @ X3)) @ (cHOL4.list.NULL @ ((cHOL4.list.MAP @ X2) @ X3))))))))))))) (Tquotient_list.NULL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4)) @ ((cHOL4.min.= @ (cHOL4.list.NULL @ X3)) @ (cHOL4.list.NULL @ X4))))))))))))))) (Tquotient_list.ALL_EL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X4) @ X3)) @ ((cHOL4.list.EVERY @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4)) @ ((cHOL4.list.MAP @ X2) @ X3))))))))))))))) (Tquotient_list.ALL_EL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6)) @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X5) @ X3)) @ ((cHOL4.list.EVERY @ X6) @ X4))))))))))))))))))) (Tquotient_list.SOME_EL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X4) @ X3)) @ ((cHOL4.list.EXISTS @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4)) @ ((cHOL4.list.MAP @ X2) @ X3))))))))))))))) (Tquotient_list.SOME_EL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6)) @ (((cHOL4.list.LIST_REL @ X0) @ X3) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X5) @ X3)) @ ((cHOL4.list.EXISTS @ X6) @ X4))))))))))))))))))) (Tquotient_list.FOLDL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X7) @ X8) @ X6)) @ (X1 @ (((cHOL4.list.FOLDL @ (((cHOL4.quotient.--> @ X1) @ ((cHOL4.quotient.--> @ X4) @ X2)) @ X7)) @ (X2 @ X8)) @ ((cHOL4.list.MAP @ X5) @ X6))))))))))))))))))))))))) (Tquotient_list.FOLDL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient.===> @ X3) @ X0)) @ X8) @ X9)) @ ((cHOL4.bool./\ @ ((X0 @ X10) @ X11)) @ (((cHOL4.list.LIST_REL @ X3) @ X6) @ X7)))) @ ((X0 @ (((cHOL4.list.FOLDL @ X8) @ X10) @ X6)) @ (((cHOL4.list.FOLDL @ X9) @ X11) @ X7)))))))))))))))))))))))))))))) (Tquotient_list.FOLDR_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X7) @ X8) @ X6)) @ (X4 @ (((cHOL4.list.FOLDR @ (((cHOL4.quotient.--> @ X1) @ ((cHOL4.quotient.--> @ X4) @ X5)) @ X7)) @ (X5 @ X8)) @ ((cHOL4.list.MAP @ X2) @ X6))))))))))))))))))))))))) (Tquotient_list.FOLDR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient.===> @ X3) @ X3)) @ X8) @ X9)) @ ((cHOL4.bool./\ @ ((X3 @ X10) @ X11)) @ (((cHOL4.list.LIST_REL @ X0) @ X6) @ X7)))) @ ((X3 @ (((cHOL4.list.FOLDR @ X8) @ X10) @ X6)) @ (((cHOL4.list.FOLDR @ X9) @ X11) @ X7)))))))))))))))))))))))))))))) (Tquotient_option.OPTION_MAP_I,((cHOL4.min.= @ (cHOL4.option.OPTION_MAP @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tquotient_option.OPTION_REL_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.option.OPTREL @ X2) @ cHOL4.option.NONE) @ cHOL4.option.NONE)) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.option.OPTREL @ X2) @ (cHOL4.option.SOME @ X1)) @ cHOL4.option.NONE)) @ cHOL4.bool.F)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.option.OPTREL @ X2) @ cHOL4.option.NONE) @ (cHOL4.option.SOME @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (((cHOL4.option.OPTREL @ X2) @ (cHOL4.option.SOME @ X1)) @ (cHOL4.option.SOME @ X0))) @ ((X2 @ X1) @ X0)))))))))))) (Tquotient_option.OPTION_REL_EQ,((cHOL4.min.= @ (cHOL4.option.OPTREL @ cHOL4.min.=)) @ cHOL4.min.=)) (Tquotient_option.OPTION_EQUIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ (cHOL4.quotient.EQUIV @ (cHOL4.option.OPTREL @ X0)))))) (Tquotient_option.OPTION_QUOTIENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (((cHOL4.quotient.QUOTIENT @ (cHOL4.option.OPTREL @ X0)) @ (cHOL4.option.OPTION_MAP @ X1)) @ (cHOL4.option.OPTION_MAP @ X2)))))))))) (Tquotient_option.NONE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ cHOL4.option.NONE) @ ((cHOL4.option.OPTION_MAP @ X1) @ cHOL4.option.NONE)))))))))) (Tquotient_option.NONE_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (((cHOL4.option.OPTREL @ X0) @ cHOL4.option.NONE) @ cHOL4.option.NONE))))))))) (Tquotient_option.SOME_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.option.SOME @ X3)) @ ((cHOL4.option.OPTION_MAP @ X1) @ (cHOL4.option.SOME @ (X2 @ X3)))))))))))))) (Tquotient_option.SOME_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ (((cHOL4.option.OPTREL @ X0) @ (cHOL4.option.SOME @ X3)) @ (cHOL4.option.SOME @ X4))))))))))))))) (Tquotient_option.IS_SOME_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ X3)) @ (cHOL4.option.IS_SOME @ ((cHOL4.option.OPTION_MAP @ X2) @ X3))))))))))))) (Tquotient_option.IS_SOME_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.option.OPTREL @ X0) @ X3) @ X4)) @ ((cHOL4.min.= @ (cHOL4.option.IS_SOME @ X3)) @ (cHOL4.option.IS_SOME @ X4))))))))))))))) (Tquotient_option.IS_NONE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.option.IS_NONE @ X3)) @ (cHOL4.option.IS_NONE @ ((cHOL4.option.OPTION_MAP @ X2) @ X3))))))))))))) (Tquotient_option.IS_NONE_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.option.OPTREL @ X0) @ X3) @ X4)) @ ((cHOL4.min.= @ (cHOL4.option.IS_NONE @ X3)) @ (cHOL4.option.IS_NONE @ X4))))))))))))))) (Tquotient_option.OPTION_MAP_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.option.OPTION_MAP @ X7) @ X6)) @ ((cHOL4.option.OPTION_MAP @ X4) @ ((cHOL4.option.OPTION_MAP @ (((cHOL4.quotient.--> @ X1) @ X5) @ X7)) @ ((cHOL4.option.OPTION_MAP @ X2) @ X6))))))))))))))))))))))) (Tquotient_option.OPTION_MAP_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X8) @ X9)) @ (((cHOL4.option.OPTREL @ X0) @ X6) @ X7))) @ (((cHOL4.option.OPTREL @ X3) @ ((cHOL4.option.OPTION_MAP @ X8) @ X6)) @ ((cHOL4.option.OPTION_MAP @ X9) @ X7)))))))))))))))))))))))))) (Tquotient_pair.PAIR_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quotient_pair.### @ X0) @ X1)) @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ ((X0 @ X2) @ X4)) @ ((X1 @ X3) @ X5)))))))))))))) (Tquotient_pair.PAIR_MAP_I,((cHOL4.min.= @ ((cHOL4.pair.## @ cHOL4.combin.I) @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tquotient_pair.PAIR_REL_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.quotient_pair.### @ X0) @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X4)) @ ((X1 @ X3) @ X5)))))))))))))))) (Tquotient_pair.PAIR_REL_EQ,((cHOL4.min.= @ ((cHOL4.quotient_pair.### @ cHOL4.min.=) @ cHOL4.min.=)) @ cHOL4.min.=)) (Tquotient_pair.PAIR_REL_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((X1 @ X4) @ X5)) @ ((cHOL4.min.= @ (X1 @ X4)) @ (X1 @ X5))))))))) @ (cHOL4.bool.! @ (^[X6]: ((((cHOL4.quotient_pair.### @ X0) @ X1) @ X6) @ X6))))))))) (Tquotient_pair.PAIR_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X1)) @ (cHOL4.quotient.EQUIV @ ((cHOL4.quotient_pair.### @ X0) @ X1))))))))) (Tquotient_pair.PAIR_QUOTIENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (((cHOL4.quotient.QUOTIENT @ ((cHOL4.quotient_pair.### @ X0) @ X3)) @ ((cHOL4.pair.## @ X1) @ X4)) @ ((cHOL4.pair.## @ X2) @ X5))))))))))))))))) (Tquotient_pair.FST_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.pair.FST @ X6)) @ (X1 @ (cHOL4.pair.FST @ (((cHOL4.pair.## @ X2) @ X5) @ X6))))))))))))))))))))) (Tquotient_pair.FST_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient_pair.### @ X0) @ X3) @ X6) @ X7)) @ ((X0 @ (cHOL4.pair.FST @ X6)) @ (cHOL4.pair.FST @ X7)))))))))))))))))))))) (Tquotient_pair.SND_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.pair.SND @ X6)) @ (X4 @ (cHOL4.pair.SND @ (((cHOL4.pair.## @ X2) @ X5) @ X6))))))))))))))))))))) (Tquotient_pair.SND_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient_pair.### @ X0) @ X3) @ X6) @ X7)) @ ((X3 @ (cHOL4.pair.SND @ X6)) @ (cHOL4.pair.SND @ X7)))))))))))))))))))))) (Tquotient_pair.COMMA_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ (((cHOL4.pair.## @ X1) @ X4) @ ((cHOL4.pair.|comma| @ (X2 @ X6)) @ (X5 @ X7))))))))))))))))))))))) (Tquotient_pair.COMMA_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X6) @ X8)) @ ((X3 @ X7) @ X9))) @ ((((cHOL4.quotient_pair.### @ X0) @ X3) @ ((cHOL4.pair.|comma| @ X6) @ X7)) @ ((cHOL4.pair.|comma| @ X8) @ X9)))))))))))))))))))))))))) (Tquotient_pair.CURRY_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.= @ (((cHOL4.pair.CURRY @ X9) @ X10) @ X11)) @ (X7 @ (((cHOL4.pair.CURRY @ (((cHOL4.quotient.--> @ ((cHOL4.pair.## @ X1) @ X4)) @ X8) @ X9)) @ (X2 @ X10)) @ (X5 @ X11)))))))))))))))))))))))))))))))) (Tquotient_pair.CURRY_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ ((cHOL4.quotient_pair.### @ X0) @ X3)) @ X6) @ X9) @ X10)) @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient.===> @ X3) @ X6)) @ (cHOL4.pair.CURRY @ X9)) @ (cHOL4.pair.CURRY @ X10))))))))))))))))))))))))))))) (Tquotient_pair.UNCURRY_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ X9) @ X10)) @ (X7 @ ((cHOL4.pair.UNCURRY @ (((cHOL4.quotient.--> @ X1) @ ((cHOL4.quotient.--> @ X4) @ X8)) @ X9)) @ (((cHOL4.pair.## @ X2) @ X5) @ X10)))))))))))))))))))))))))))))) (Tquotient_pair.UNCURRY_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient.===> @ X3) @ X6)) @ X9) @ X10)) @ ((((cHOL4.quotient.===> @ ((cHOL4.quotient_pair.### @ X0) @ X3)) @ X6) @ (cHOL4.pair.UNCURRY @ X9)) @ (cHOL4.pair.UNCURRY @ X10))))))))))))))))))))))))))))) (Tquotient_pair.PAIR_MAP_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X9) @ X10) @ X11)) @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.pair.## @ X12) @ X13)) @ (((cHOL4.quotient.--> @ ((cHOL4.pair.## @ X2) @ X8)) @ ((cHOL4.pair.## @ X4) @ X10)) @ ((cHOL4.pair.## @ (((cHOL4.quotient.--> @ X1) @ X5) @ X12)) @ (((cHOL4.quotient.--> @ X7) @ X11) @ X13))))))))))))))))))))))))))))))))))))) (Tquotient_pair.PAIR_MAP_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X9) @ X10) @ X11)) @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X12) @ X13)) @ ((((cHOL4.quotient.===> @ X6) @ X9) @ X14) @ X15))) @ ((((cHOL4.quotient.===> @ ((cHOL4.quotient_pair.### @ X0) @ X6)) @ ((cHOL4.quotient_pair.### @ X3) @ X9)) @ ((cHOL4.pair.## @ X12) @ X14)) @ ((cHOL4.pair.## @ X13) @ X15)))))))))))))))))))))))))))))))))))))))) (Tquotient_pred_set.GSPECR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quotient_pred_set.GSPECR @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X4]: ((((cHOL4.quotient_pair.### @ X1) @ cHOL4.min.=) @ ((cHOL4.pair.|comma| @ X3) @ cHOL4.bool.T)) @ (X2 @ X4)))))))))))))) (Tquotient_pred_set.SUBSETR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.SUBSETR @ X0) @ X1) @ X2)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X2)))))))))))) (Tquotient_pred_set.PSUBSETR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.PSUBSETR @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (((cHOL4.quotient_pred_set.SUBSETR @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X1) @ X2))))))))))) (Tquotient_pred_set.INSERTR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool.\/ @ ((X0 @ X3) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X2))))))))))))) (Tquotient_pred_set.DELETER_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.DELETER @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (cHOL4.bool.~ @ ((X0 @ X2) @ X3)))))))))))))) (Tquotient_pred_set.DISJOINTR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.DISJOINTR @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X2))))))))))))) (Tquotient_pred_set.FINITER_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X1)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=)) @ cHOL4.min.=))) @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X2 @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=))) @ (^[X1]: ((cHOL4.min.==> @ (X2 @ X1)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X3]: (X2 @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X3) @ X1))))))))) @ (X2 @ X1)))))))))) (Tquotient_pred_set.IMAGER_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quotient_pred_set.IMAGER @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X5]: ((cHOL4.bool./\ @ ((X1 @ X4) @ (X2 @ X5))) @ ((cHOL4.bool.IN @ X5) @ X3))))))))))))))))) (Tquotient_pred_set.IN_SET_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (((cHOL4.quotient.--> @ X0) @ cHOL4.combin.I) @ X1))) @ ((cHOL4.bool.IN @ (X0 @ X2)) @ X1))))))))) (Tquotient_pred_set.SET_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X4) @ X2))))))))))))))) (Tquotient_pred_set.SET_REL_MP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((X0 @ X5) @ X6))) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X5) @ X3)) @ ((cHOL4.bool.IN @ X6) @ X4))))))))))))))))))) (Tquotient_pred_set.IN_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ X4)) @ ((cHOL4.bool.IN @ (X2 @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4))))))))))))))) (Tquotient_pred_set.IN_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ X5)) @ ((cHOL4.bool.IN @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.IN_GSPECR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ (((cHOL4.quotient_pred_set.GSPECR @ X0) @ X1) @ X2))) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X4]: ((((cHOL4.quotient_pair.### @ X1) @ cHOL4.min.=) @ ((cHOL4.pair.|comma| @ X3) @ cHOL4.bool.T)) @ (X2 @ X4)))))))))))))) (Tquotient_pred_set.GSPEC_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ X6)) @ (((cHOL4.quotient.--> @ X5) @ cHOL4.combin.I) @ (((cHOL4.quotient_pred_set.GSPECR @ X0) @ X3) @ (((cHOL4.quotient.--> @ X1) @ ((cHOL4.pair.## @ X5) @ cHOL4.combin.I)) @ X6))))))))))))))))))))) (Tquotient_pred_set.GSPECR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient_pair.### @ X3) @ cHOL4.min.=)) @ X6) @ X7)) @ ((((cHOL4.quotient.===> @ X3) @ cHOL4.min.=) @ (((cHOL4.quotient_pred_set.GSPECR @ X0) @ X3) @ X6)) @ (((cHOL4.quotient_pred_set.GSPECR @ X0) @ X3) @ X7)))))))))))))))))))))) (Tquotient_pred_set.EMPTY_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ cHOL4.pred_set.EMPTY) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ cHOL4.pred_set.EMPTY)))))))))) (Tquotient_pred_set.EMPTY_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ cHOL4.pred_set.EMPTY) @ cHOL4.pred_set.EMPTY))))))))) (Tquotient_pred_set.UNIV_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ cHOL4.pred_set.UNIV)))))))))) (Tquotient_pred_set.UNIV_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))))))))) (Tquotient_pred_set.UNION_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X3) @ X4)) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ ((cHOL4.pred_set.UNION @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4)))))))))))))))) (Tquotient_pred_set.UNION_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ ((cHOL4.pred_set.UNION @ X3) @ X5)) @ ((cHOL4.pred_set.UNION @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.INTER_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X3) @ X4)) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ ((cHOL4.pred_set.INTER @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4)))))))))))))))) (Tquotient_pred_set.INTER_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ ((cHOL4.pred_set.INTER @ X3) @ X5)) @ ((cHOL4.pred_set.INTER @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.SUBSET_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X3) @ X4)) @ (((cHOL4.quotient_pred_set.SUBSETR @ X0) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4))))))))))))))) (Tquotient_pred_set.SUBSETR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.SUBSETR @ X0) @ X3) @ X5)) @ (((cHOL4.quotient_pred_set.SUBSETR @ X0) @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.PSUBSET_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.PSUBSET @ X3) @ X4)) @ (((cHOL4.quotient_pred_set.PSUBSETR @ X0) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4))))))))))))))) (Tquotient_pred_set.PSUBSETR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.PSUBSETR @ X0) @ X3) @ X5)) @ (((cHOL4.quotient_pred_set.PSUBSETR @ X0) @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.IN_INSERTR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((X0 @ X3) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X2)))))))))))) (Tquotient_pred_set.INSERT_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X4) @ X3)) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ (X2 @ X4)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)))))))))))))))) (Tquotient_pred_set.INSERTR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X3) @ X5)) @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.IN_DELETER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ (((cHOL4.quotient_pred_set.DELETER @ X0) @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (cHOL4.bool.~ @ ((X0 @ X2) @ X3))))))))))))) (Tquotient_pred_set.DELETE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.DELETE @ X3) @ X4)) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ (((cHOL4.quotient_pred_set.DELETER @ X0) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (X2 @ X4)))))))))))))))) (Tquotient_pred_set.DELETER_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((X0 @ X5) @ X6))) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ (((cHOL4.quotient_pred_set.DELETER @ X0) @ X3) @ X5)) @ (((cHOL4.quotient_pred_set.DELETER @ X0) @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.DIFF_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X3) @ X4)) @ (((cHOL4.quotient.--> @ X2) @ cHOL4.combin.I) @ ((cHOL4.pred_set.DIFF @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4)))))))))))))))) (Tquotient_pred_set.DIFF_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ ((cHOL4.pred_set.DIFF @ X3) @ X5)) @ ((cHOL4.pred_set.DIFF @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.DISJOINT_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X3) @ X4)) @ (((cHOL4.quotient_pred_set.DISJOINTR @ X0) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4))))))))))))))) (Tquotient_pred_set.DISJOINTR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X5) @ X6))) @ ((cHOL4.min.= @ (((cHOL4.quotient_pred_set.DISJOINTR @ X0) @ X3) @ X5)) @ (((cHOL4.quotient_pred_set.DISJOINTR @ X0) @ X4) @ X6))))))))))))))))))) (Tquotient_pred_set.FINITE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ X3)) @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3))))))))))))) (Tquotient_pred_set.FINITER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X1)) @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X2)))))))))) (Tquotient_pred_set.FINITER_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X3)) @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X4))))))))))))))) (Tquotient_pred_set.FINITER_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.quotient_pred_set.FINITER @ X0) @ cHOL4.pred_set.EMPTY)))) (Tquotient_pred_set.FINITER_INSERTR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=))) @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X1)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X2]: ((cHOL4.quotient_pred_set.FINITER @ X0) @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X2) @ X1)))))))))) (Tquotient_pred_set.ABSORPTIONR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X1]: ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=))) @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ X2)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X1) @ X2)) @ X2))))))))) (Tquotient_pred_set.FINITER_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=)) @ cHOL4.min.=))) @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=))) @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X2)) @ (X1 @ X2))) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ X2))) @ (X1 @ (((cHOL4.quotient_pred_set.INSERTR @ X0) @ X3) @ X2)))))))))) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ cHOL4.min.=))) @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.quotient_pred_set.FINITER @ X0) @ X2)) @ (X1 @ X2)))))))))) (Tquotient_pred_set.IN_IMAGER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((((cHOL4.quotient_pred_set.IMAGER @ X0) @ X1) @ X3) @ X4))) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X5]: ((cHOL4.bool./\ @ ((X1 @ X2) @ (X3 @ X5))) @ ((cHOL4.bool.IN @ X5) @ X4)))))))))))))))) (Tquotient_pred_set.IMAGE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X6) @ X7)) @ (((cHOL4.quotient.--> @ X5) @ cHOL4.combin.I) @ ((((cHOL4.quotient_pred_set.IMAGER @ X0) @ X3) @ (((cHOL4.quotient.--> @ X1) @ X5) @ X6)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X7))))))))))))))))))))))) (Tquotient_pred_set.IMAGER_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X8) @ X9))) @ ((((cHOL4.quotient.===> @ X3) @ cHOL4.min.=) @ ((((cHOL4.quotient_pred_set.IMAGER @ X0) @ X3) @ X6) @ X8)) @ ((((cHOL4.quotient_pred_set.IMAGER @ X0) @ X3) @ X7) @ X9)))))))))))))))))))))))))) (Tquotient_sum.SUM_REL_tupled_primitive_def,((cHOL4.min.= @ cHOL4.quotient_sum.SUM_REL_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (((cHOL4.sum.sum_CASE @ X7) @ (^[X9]: (((cHOL4.sum.sum_CASE @ X8) @ (^[X10]: (cHOL4.combin.I @ ((X3 @ X9) @ X10)))) @ (^[X11]: (cHOL4.combin.I @ cHOL4.bool.F))))) @ (^[X12]: (((cHOL4.sum.sum_CASE @ X8) @ (^[X13]: (cHOL4.combin.I @ cHOL4.bool.F))) @ (^[X14]: (cHOL4.combin.I @ ((X5 @ X12) @ X14)))))))))))))))))))) (Tquotient_sum.SUM_REL_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quotient_sum.+++ @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.quotient_sum.SUM_REL_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))))))) (Tquotient_sum.SUM_REL_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((((X0 @ X1) @ X2) @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INL @ X4))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((((X0 @ X1) @ X2) @ (cHOL4.sum.INR @ X5)) @ (cHOL4.sum.INR @ X6))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X6]: ((((X0 @ X1) @ X2) @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INR @ X6))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((((X0 @ X1) @ X2) @ (cHOL4.sum.INR @ X5)) @ (cHOL4.sum.INL @ X4)))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((((X0 @ X7) @ X8) @ X9) @ X10))))))))))))) (Tquotient_sum.SUM_REL_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((((cHOL4.quotient_sum.+++ @ X5) @ X4) @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INL @ X2))) @ ((X5 @ X3) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((((cHOL4.quotient_sum.+++ @ X5) @ X4) @ (cHOL4.sum.INR @ X1)) @ (cHOL4.sum.INR @ X0))) @ ((X4 @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((((cHOL4.quotient_sum.+++ @ X5) @ X4) @ (cHOL4.sum.INL @ X3)) @ (cHOL4.sum.INR @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((((cHOL4.quotient_sum.+++ @ X5) @ X4) @ (cHOL4.sum.INR @ X1)) @ (cHOL4.sum.INL @ X2))) @ cHOL4.bool.F))))))))))))))))) (Tquotient_sum.SUM_REL_EQ,((cHOL4.min.= @ ((cHOL4.quotient_sum.+++ @ cHOL4.min.=) @ cHOL4.min.=)) @ cHOL4.min.=)) (Tquotient_sum.SUM_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X1)) @ (cHOL4.quotient.EQUIV @ ((cHOL4.quotient_sum.+++ @ X0) @ X1))))))))) (Tquotient_sum.SUM_QUOTIENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (((cHOL4.quotient.QUOTIENT @ ((cHOL4.quotient_sum.+++ @ X0) @ X3)) @ ((cHOL4.sum.++ @ X1) @ X4)) @ ((cHOL4.sum.++ @ X2) @ X5))))))))))))))))) (Tquotient_sum.INL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.sum.INL @ X6)) @ (((cHOL4.sum.++ @ X1) @ X4) @ (cHOL4.sum.INL @ (X2 @ X6))))))))))))))))))))) (Tquotient_sum.INL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((X0 @ X6) @ X7)) @ ((((cHOL4.quotient_sum.+++ @ X0) @ X3) @ (cHOL4.sum.INL @ X6)) @ (cHOL4.sum.INL @ X7)))))))))))))))))))))) (Tquotient_sum.INR_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.sum.INR @ X6)) @ (((cHOL4.sum.++ @ X1) @ X4) @ (cHOL4.sum.INR @ (X5 @ X6))))))))))))))))))))) (Tquotient_sum.INR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((X3 @ X6) @ X7)) @ ((((cHOL4.quotient_sum.+++ @ X0) @ X3) @ (cHOL4.sum.INR @ X6)) @ (cHOL4.sum.INR @ X7)))))))))))))))))))))) (Tquotient_sum.ISL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.sum.ISL @ X6)) @ (cHOL4.sum.ISL @ (((cHOL4.sum.++ @ X2) @ X5) @ X6)))))))))))))))))))) (Tquotient_sum.ISL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient_sum.+++ @ X0) @ X3) @ X6) @ X7)) @ ((cHOL4.min.= @ (cHOL4.sum.ISL @ X6)) @ (cHOL4.sum.ISL @ X7)))))))))))))))))))))) (Tquotient_sum.ISR_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (cHOL4.sum.ISR @ X6)) @ (cHOL4.sum.ISR @ (((cHOL4.sum.++ @ X2) @ X5) @ X6)))))))))))))))))))) (Tquotient_sum.ISR_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient_sum.+++ @ X0) @ X3) @ X6) @ X7)) @ ((cHOL4.min.= @ (cHOL4.sum.ISR @ X6)) @ (cHOL4.sum.ISR @ X7)))))))))))))))))))))) (Tquotient_sum.SUM_MAP_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X9) @ X10) @ X11)) @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.sum.++ @ X12) @ X13)) @ (((cHOL4.quotient.--> @ ((cHOL4.sum.++ @ X2) @ X8)) @ ((cHOL4.sum.++ @ X4) @ X10)) @ ((cHOL4.sum.++ @ (((cHOL4.quotient.--> @ X1) @ X5) @ X12)) @ (((cHOL4.quotient.--> @ X7) @ X11) @ X13))))))))))))))))))))))))))))))))))))) (Tquotient_sum.SUM_MAP_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X9) @ X10) @ X11)) @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X12) @ X13)) @ ((((cHOL4.quotient.===> @ X6) @ X9) @ X14) @ X15))) @ ((((cHOL4.quotient.===> @ ((cHOL4.quotient_sum.+++ @ X0) @ X6)) @ ((cHOL4.quotient_sum.+++ @ X3) @ X9)) @ ((cHOL4.sum.++ @ X12) @ X14)) @ ((cHOL4.sum.++ @ X13) @ X15)))))))))))))))))))))))))))))))))))))))) (Tquotient.EQUIV_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.quotient.EQUIV @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))))))))))) (Tquotient.PARTIAL_EQUIV_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.quotient.PARTIAL_EQUIV @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: ((X0 @ X1) @ X1)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X1)) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X2)) @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2)))))))))))))) (Tquotient.QUOTIENT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ (X2 @ X3))) @ X3)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((X0 @ (X2 @ X3)) @ (X2 @ X3))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((X0 @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((X0 @ X4) @ X4)) @ ((cHOL4.bool./\ @ ((X0 @ X5) @ X5)) @ ((cHOL4.min.= @ (X1 @ X4)) @ (X1 @ X5))))))))))))))))))) (Tquotient.FUN_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quotient.--> @ X0) @ X1)) @ (^[X2]: (^[X3]: (X1 @ (X2 @ (X0 @ X3))))))))))) (Tquotient.FUN_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quotient.===> @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X0 @ X4) @ X5)) @ ((X1 @ (X2 @ X4)) @ (X3 @ X5))))))))))))))))) (Tquotient.respects_def,((cHOL4.min.= @ cHOL4.quotient.respects) @ cHOL4.combin.W)) (Tquotient.?!!,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.quotient.?!! @ X0)) @ (cHOL4.bool.?! @ X0))))) (Tquotient.RES_EXISTS_EQUIV_DEF,((cHOL4.min.= @ cHOL4.quotient.RES_EXISTS_EQUIV) @ (^[X0]: (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X2]: ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X1 @ X3))) @ ((X0 @ X2) @ X3))))))))))) (Tquotient.FUN_REL_EQUALS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X6)) @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X7))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.quotient.--> @ X2) @ X4) @ X6)) @ (((cHOL4.quotient.--> @ X2) @ X4) @ X7))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((X0 @ X8) @ X9)) @ ((X3 @ (X6 @ X8)) @ (X7 @ X9)))))))))))))))))))))))))))) (Tquotient.EQUIV_IMP_PARTIAL_EQUIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ (cHOL4.quotient.PARTIAL_EQUIV @ X0))))) (Tquotient.QUOTIENT_ABS_REP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ (X2 @ X3))) @ X3))))))))))) (Tquotient.QUOTIENT_REP_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((X0 @ (X2 @ X3)) @ (X2 @ X3)))))))))))) (Tquotient.QUOTIENT_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((X0 @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((X0 @ X3) @ X3)) @ ((cHOL4.bool./\ @ ((X0 @ X4) @ X4)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X1 @ X4))))))))))))))))) (Tquotient.QUOTIENT_REL_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X1 @ X4))))))))))))))) (Tquotient.QUOTIENT_REL_ABS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X3)) @ ((cHOL4.min.==> @ ((X0 @ X4) @ X4)) @ ((cHOL4.min.= @ ((X0 @ X3) @ X4)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X1 @ X4))))))))))))))))) (Tquotient.QUOTIENT_REL_REP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((X0 @ (X2 @ X3)) @ (X2 @ X4))) @ ((cHOL4.min.= @ X3) @ X4)))))))))))))) (Tquotient.QUOTIENT_REP_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X3) @ X3)) @ ((X0 @ (X2 @ (X1 @ X3))) @ X3)))))))))))) (Tquotient.IDENTITY_EQUIV,(cHOL4.quotient.EQUIV @ cHOL4.min.=)) (Tquotient.IDENTITY_QUOTIENT,(((cHOL4.quotient.QUOTIENT @ cHOL4.min.=) @ cHOL4.combin.I) @ cHOL4.combin.I)) (Tquotient.EQUIV_REFL_SYM_TRANS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X3))) @ ((X0 @ X1) @ X3)))))))))))))) (Tquotient.QUOTIENT_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((X0 @ X4) @ X3)))))))))))))) (Tquotient.QUOTIENT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X3) @ X4)) @ ((X0 @ X4) @ X5))) @ ((X0 @ X3) @ X5)))))))))))))))) (Tquotient.FUN_MAP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.quotient.--> @ X0) @ X1) @ X2) @ X3)) @ (X1 @ (X2 @ (X0 @ X3))))))))))))) (Tquotient.FUN_MAP_I,((cHOL4.min.= @ ((cHOL4.quotient.--> @ cHOL4.combin.I) @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tquotient.IN_FUN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X3) @ (((cHOL4.quotient.--> @ X0) @ X1) @ X2))) @ (X1 @ ((cHOL4.bool.IN @ (X0 @ X3)) @ X2)))))))))))) (Tquotient.FUN_REL_EQ,((cHOL4.min.= @ ((cHOL4.quotient.===> @ cHOL4.min.=) @ cHOL4.min.=)) @ cHOL4.min.=)) (Tquotient.FUN_QUOTIENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (((cHOL4.quotient.QUOTIENT @ ((cHOL4.quotient.===> @ X0) @ X3)) @ ((cHOL4.quotient.--> @ X2) @ X4)) @ ((cHOL4.quotient.--> @ X1) @ X5))))))))))))))))) (Tquotient.RESPECTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quotient.respects @ X0) @ X1)) @ ((X0 @ X1) @ X1))))))) (Tquotient.IN_RESPECTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.quotient.respects @ X0))) @ ((X0 @ X1) @ X1))))))) (Tquotient.RESPECTS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((X1 @ (X2 @ X3)) @ (X2 @ X4))))))))))))))) (Tquotient.RESPECTS_MP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X1)) @ X2)) @ ((X0 @ X3) @ X4))) @ ((X1 @ (X2 @ X3)) @ (X2 @ X4)))))))))))))) (Tquotient.RESPECTS_REP_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X4)) @ ((X0 @ X5) @ X5))) @ ((X3 @ (X4 @ (X2 @ (X1 @ X5)))) @ (X4 @ X5))))))))))))))))) (Tquotient.RESPECTS_o,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X1) @ X2)) @ X3)) @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X1)) @ X4))) @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X2)) @ ((cHOL4.combin.o @ X3) @ X4)))))))))))))) (Tquotient.RES_EXISTS_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X2]: ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X1 @ X3))) @ ((X0 @ X2) @ X3))))))))))))) (Tquotient.FUN_REL_EQ_REL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X7)) @ ((cHOL4.min.= @ (((cHOL4.quotient.--> @ X2) @ X4) @ X6)) @ (((cHOL4.quotient.--> @ X2) @ X4) @ X7)))))))))))))))))))))))) (Tquotient.FUN_REL_MP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((X0 @ X8) @ X9))) @ ((X3 @ (X6 @ X8)) @ (X7 @ X9)))))))))))))))))))))))))) (Tquotient.FUN_REL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X7)) @ ((cHOL4.min.= @ (((cHOL4.quotient.--> @ X2) @ X4) @ X6)) @ (((cHOL4.quotient.--> @ X2) @ X4) @ X7))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((X0 @ X8) @ X9)) @ ((X3 @ (X6 @ X8)) @ (X7 @ X9))))))))))))))))))))))))))) (Tquotient.EQUALS_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.min.= @ X3) @ X4)) @ ((X0 @ (X2 @ X3)) @ (X2 @ X4))))))))))))))) (Tquotient.EQUALS_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X3) @ X4)) @ ((X0 @ X5) @ X6))) @ ((cHOL4.min.= @ ((X0 @ X3) @ X5)) @ ((X0 @ X4) @ X6))))))))))))))))))) (Tquotient.LAMBDA_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (^[X7]: (X6 @ X7))) @ (((cHOL4.quotient.--> @ X2) @ X4) @ (^[X8]: (X5 @ (X6 @ (X1 @ X8))))))))))))))))))))))) (Tquotient.LAMBDA_PRS1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (^[X7]: (X6 @ X7))) @ (((cHOL4.quotient.--> @ X2) @ X4) @ (^[X8]: ((((cHOL4.quotient.--> @ X1) @ X5) @ X6) @ X8))))))))))))))))))))) (Tquotient.LAMBDA_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ (^[X8]: (X6 @ X8))) @ (^[X9]: (X7 @ X9))))))))))))))))))))))) (Tquotient.ABSTRACT_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ X6) @ (((cHOL4.quotient.--> @ X2) @ X4) @ ((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ (((cHOL4.quotient.--> @ X1) @ X5) @ X6))))))))))))))))))))) (Tquotient.RES_ABSTRACT_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ ((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ X6)) @ ((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ X7)))))))))))))))))))))) (Tquotient.LET_RES_ABSTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.LET @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X1)) @ X2)) @ ((cHOL4.bool.LET @ X1) @ X2)))))))))) (Tquotient.LAMBDA_REP_ABS_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((X0 @ X8) @ X9)) @ ((X0 @ X8) @ (X2 @ (X1 @ X9))))))))) @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((X3 @ X10) @ X11)) @ ((X3 @ X10) @ (X5 @ (X4 @ X11)))))))))) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7))) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ (((cHOL4.quotient.--> @ X1) @ X5) @ (((cHOL4.quotient.--> @ X2) @ X4) @ X7))))))))))))))))))))) (Tquotient.REP_ABS_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((X0 @ X3) @ (X2 @ (X1 @ X4)))))))))))))))) (Tquotient.FORALL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.! @ X3)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3))))))))))))) (Tquotient.RES_FORALL_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ X3)) @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ X4))))))))))))))) (Tquotient.RES_FORALL_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X3) @ X4)) @ ((cHOL4.bool.RES_FORALL @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4))))))))))))))) (Tquotient.EXISTS_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.? @ X3)) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3))))))))))))) (Tquotient.RES_EXISTS_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ X3)) @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ X4))))))))))))))) (Tquotient.RES_EXISTS_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X3) @ X4)) @ ((cHOL4.bool.RES_EXISTS @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3)) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X4))))))))))))))) (Tquotient.EXISTS_UNIQUE_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.?! @ X3)) @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X0) @ (((cHOL4.quotient.--> @ X1) @ cHOL4.combin.I) @ X3))))))))))))) (Tquotient.RES_EXISTS_EQUIV_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X3) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X0) @ X3)) @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X0) @ X4))))))))))))))) (Tquotient.COND_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.bool.COND @ X3) @ X4) @ X5)) @ (X1 @ (((cHOL4.bool.COND @ X3) @ (X2 @ X4)) @ (X2 @ X5)))))))))))))))))) (Tquotient.COND_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((X0 @ X5) @ X6)) @ ((X0 @ X7) @ X8)))) @ ((X0 @ (((cHOL4.bool.COND @ X3) @ X5) @ X7)) @ (((cHOL4.bool.COND @ X4) @ X6) @ X8))))))))))))))))))))))) (Tquotient.LET_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.bool.LET @ X6) @ X7)) @ (X4 @ ((cHOL4.bool.LET @ (((cHOL4.quotient.--> @ X1) @ X5) @ X6)) @ (X2 @ X7))))))))))))))))))))))) (Tquotient.LET_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((X0 @ X8) @ X9))) @ ((X3 @ ((cHOL4.bool.LET @ X6) @ X8)) @ ((cHOL4.bool.LET @ X7) @ X9)))))))))))))))))))))))))) (Tquotient.literal_case_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.bool.literal_case @ X6) @ X7)) @ (X4 @ ((cHOL4.bool.literal_case @ (((cHOL4.quotient.--> @ X1) @ X5) @ X6)) @ (X2 @ X7))))))))))))))))))))))) (Tquotient.literal_case_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((X0 @ X8) @ X9))) @ ((X3 @ ((cHOL4.bool.literal_case @ X6) @ X8)) @ ((cHOL4.bool.literal_case @ X7) @ X9)))))))))))))))))))))))))) (Tquotient.APPLY_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ (X6 @ X7)) @ (X4 @ ((((cHOL4.quotient.--> @ X1) @ X5) @ X6) @ (X2 @ X7))))))))))))))))))))))) (Tquotient.APPLY_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X6) @ X7)) @ ((X0 @ X8) @ X9))) @ ((X3 @ (X6 @ X8)) @ (X7 @ X9)))))))))))))))))))))))))) (Tquotient.I_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.combin.I @ X3)) @ (X1 @ (cHOL4.combin.I @ (X2 @ X3)))))))))))))) (Tquotient.I_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X3) @ X4)) @ ((X0 @ (cHOL4.combin.I @ X3)) @ (cHOL4.combin.I @ X4))))))))))))))) (Tquotient.K_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.combin.K @ X6) @ X7)) @ (X1 @ ((cHOL4.combin.K @ (X2 @ X6)) @ (X5 @ X7))))))))))))))))))))))) (Tquotient.K_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X6) @ X7)) @ ((X3 @ X8) @ X9))) @ ((X0 @ ((cHOL4.combin.K @ X6) @ X8)) @ ((cHOL4.combin.K @ X7) @ X9)))))))))))))))))))))))))) (Tquotient.o_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ ((cHOL4.combin.o @ X9) @ X10)) @ (((cHOL4.quotient.--> @ X2) @ X7) @ ((cHOL4.combin.o @ (((cHOL4.quotient.--> @ X4) @ X8) @ X9)) @ (((cHOL4.quotient.--> @ X1) @ X5) @ X10)))))))))))))))))))))))))))))) (Tquotient.o_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X3) @ X6) @ X9) @ X10)) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X11) @ X12))) @ ((((cHOL4.quotient.===> @ X0) @ X6) @ ((cHOL4.combin.o @ X9) @ X11)) @ ((cHOL4.combin.o @ X10) @ X12))))))))))))))))))))))))))))))))) (Tquotient.C_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.= @ (((cHOL4.combin.C @ X9) @ X10) @ X11)) @ (X7 @ (((cHOL4.combin.C @ (((cHOL4.quotient.--> @ X1) @ ((cHOL4.quotient.--> @ X4) @ X8)) @ X9)) @ (X5 @ X10)) @ (X2 @ X11)))))))))))))))))))))))))))))))) (Tquotient.C_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X6) @ X7) @ X8)) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient.===> @ X3) @ X6)) @ X9) @ X10)) @ ((cHOL4.bool./\ @ ((X3 @ X11) @ X12)) @ ((X0 @ X13) @ X14)))) @ ((X6 @ (((cHOL4.combin.C @ X9) @ X11) @ X13)) @ (((cHOL4.combin.C @ X10) @ X12) @ X14))))))))))))))))))))))))))))))))))))) (Tquotient.W_PRS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.combin.W @ X6) @ X7)) @ (X4 @ ((cHOL4.combin.W @ (((cHOL4.quotient.--> @ X1) @ ((cHOL4.quotient.--> @ X1) @ X5)) @ X6)) @ (X2 @ X7))))))))))))))))))))))) (Tquotient.W_RSP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X3) @ X4) @ X5)) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((((cHOL4.quotient.===> @ X0) @ ((cHOL4.quotient.===> @ X0) @ X3)) @ X6) @ X7)) @ ((X0 @ X8) @ X9))) @ ((X3 @ ((cHOL4.combin.W @ X6) @ X8)) @ ((cHOL4.combin.W @ X7) @ X9)))))))))))))))))))))))))) (Tquotient.EQ_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.==> @ X0) @ X1))))))) (Tquotient.EQUALS_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ X2) @ X3)))))))))))) (Tquotient.CONJ_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ X1) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ ((cHOL4.bool./\ @ X2) @ X3)))))))))))) (Tquotient.DISJ_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X0) @ X2)) @ ((cHOL4.min.==> @ X1) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ X0) @ X1)) @ ((cHOL4.bool.\/ @ X2) @ X3)))))))))))) (Tquotient.IMP_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ X2) @ X0)) @ ((cHOL4.min.==> @ X1) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ X1)) @ ((cHOL4.min.==> @ X2) @ X3)))))))))))) (Tquotient.NOT_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ X0)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1)))))))) (Tquotient.EQUALS_EQUIV_IMPLIES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X4)) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X4 @ X3) @ X2)) @ ((X4 @ X1) @ X0))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ X1)) @ ((X4 @ X2) @ X0))))))))))))))) (Tquotient.ABSTRACT_RES_ABSTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X4) @ X5)) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X4) @ ((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ X5))))))))))))))))) (Tquotient.RES_ABSTRACT_ABSTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.quotient.QUOTIENT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ X3) @ X4) @ X5)) @ ((((cHOL4.quotient.===> @ X0) @ X3) @ ((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ X4)) @ X5)))))))))))))))) (Tquotient.EQUIV_RES_ABSTRACT_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ (X2 @ X4)) @ (X3 @ X5))) @ ((X0 @ X4) @ X4))) @ ((X1 @ (((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ X2) @ X4)) @ (X3 @ X5)))))))))))))))) (Tquotient.EQUIV_RES_ABSTRACT_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ (X2 @ X4)) @ (X3 @ X5))) @ ((X0 @ X5) @ X5))) @ ((X1 @ (X2 @ X4)) @ (((cHOL4.bool.RES_ABSTRACT @ (cHOL4.quotient.respects @ X0)) @ X3) @ X5)))))))))))))))) (Tquotient.EQUIV_RES_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ (cHOL4.quotient.respects @ X0)) @ X1)) @ (cHOL4.bool.! @ X1)))))))) (Tquotient.EQUIV_RES_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.quotient.respects @ X0)) @ X1)) @ (cHOL4.bool.? @ X1)))))))) (Tquotient.EQUIV_RES_EXISTS_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.quotient.EQUIV @ X0)) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ (cHOL4.quotient.respects @ X0)) @ X1)) @ (cHOL4.bool.?! @ X1)))))))) (Tquotient.FORALL_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ X0)) @ (cHOL4.bool.! @ X1)))))))) (Tquotient.EXISTS_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ X0)) @ (cHOL4.bool.? @ X1)))))))) (Tquotient.RES_FORALL_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ ((cHOL4.min.==> @ (X0 @ X3)) @ (X1 @ X3)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool.RES_FORALL @ X2) @ X0)) @ ((cHOL4.bool.RES_FORALL @ X2) @ X1)))))))))) (Tquotient.RES_EXISTS_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ X3)) @ ((cHOL4.min.==> @ (X0 @ X3)) @ (X1 @ X3)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool.RES_EXISTS @ X2) @ X0)) @ ((cHOL4.bool.RES_EXISTS @ X2) @ X1)))))))))) (Tquotient.LEFT_RES_FORALL_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.min.==> @ (X2 @ X3)) @ (X0 @ X3)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool.RES_FORALL @ X1) @ X2)) @ (cHOL4.bool.! @ X0)))))))))) (Tquotient.RIGHT_RES_FORALL_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ ((cHOL4.min.==> @ (X0 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.min.==> @ (cHOL4.bool.! @ X0)) @ ((cHOL4.bool.RES_FORALL @ X1) @ X2)))))))))) (Tquotient.LEFT_RES_EXISTS_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ ((cHOL4.min.==> @ (X2 @ X3)) @ (X0 @ X3)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool.RES_EXISTS @ X1) @ X2)) @ (cHOL4.bool.? @ X0)))))))))) (Tquotient.RIGHT_RES_EXISTS_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ ((cHOL4.min.==> @ (X0 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.min.==> @ (cHOL4.bool.? @ X0)) @ ((cHOL4.bool.RES_EXISTS @ X1) @ X2)))))))))) (Tquotient.EXISTS_UNIQUE_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ X1) @ X3)) @ (X2 @ X3)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ X1) @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ X1) @ X4)) @ (X2 @ X4))))) @ ((X1 @ X3) @ X4)))))))) @ ((cHOL4.min.==> @ (cHOL4.bool.?! @ X0)) @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X1) @ X2)))))))))) (Tquotient.RES_EXISTS_UNIQUE_RESPECTS_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ (cHOL4.quotient.respects @ X0)) @ X1)) @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X0) @ X1))))))) (Tquotient.RES_EXISTS_UNIQUE_REGULAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (X2 @ X3))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ X1) @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.quotient.respects @ X1) @ X4)) @ (X2 @ X4))))) @ ((X1 @ X3) @ X4)))))))) @ ((cHOL4.min.==> @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ (cHOL4.quotient.respects @ X1)) @ X0)) @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X1) @ X2)))))))))) (Tquotient.RES_EXISTS_UNIQUE_REGULAR_SAME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((((cHOL4.quotient.===> @ X0) @ cHOL4.min.=) @ X1) @ X2)) @ ((cHOL4.min.==> @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ (cHOL4.quotient.respects @ X0)) @ X1)) @ ((cHOL4.quotient.RES_EXISTS_EQUIV @ X0) @ X2)))))))))) (TratRing.rat_interp_p_def,((cHOL4.min.= @ cHOL4.ratRing.rat_interp_p) @ (cHOL4.ringNorm.interp_p @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_polynom_simplify_def,((cHOL4.min.= @ cHOL4.ratRing.rat_polynom_simplify) @ (cHOL4.ringNorm.polynom_simplify @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_polynom_normalize_def,((cHOL4.min.= @ cHOL4.ratRing.rat_polynom_normalize) @ (cHOL4.ringNorm.polynom_normalize @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_canonical_sum_merge_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_canonical_sum_merge) @ (cHOL4.ringNorm.r_canonical_sum_merge @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_monom_insert_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_monom_insert) @ (cHOL4.ringNorm.r_monom_insert @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_varlist_insert_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_varlist_insert) @ (cHOL4.ringNorm.r_varlist_insert @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_canonical_sum_scalar_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_canonical_sum_scalar) @ (cHOL4.ringNorm.r_canonical_sum_scalar @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_canonical_sum_scalar2_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_canonical_sum_scalar2) @ (cHOL4.ringNorm.r_canonical_sum_scalar2 @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_canonical_sum_scalar3_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_canonical_sum_scalar3) @ (cHOL4.ringNorm.r_canonical_sum_scalar3 @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_canonical_sum_prod_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_canonical_sum_prod) @ (cHOL4.ringNorm.r_canonical_sum_prod @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_canonical_sum_simplify_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_canonical_sum_simplify) @ (cHOL4.ringNorm.r_canonical_sum_simplify @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_ivl_aux_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_ivl_aux) @ (cHOL4.ringNorm.r_ivl_aux @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_interp_vl_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_interp_vl) @ (cHOL4.ringNorm.r_interp_vl @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_interp_m_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_interp_m) @ (cHOL4.ringNorm.r_interp_m @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_ics_aux_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_ics_aux) @ (cHOL4.ringNorm.r_ics_aux @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_interp_cs_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_interp_cs) @ (cHOL4.ringNorm.r_interp_cs @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_spolynom_normalize_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_spolynom_normalize) @ (cHOL4.ringNorm.r_spolynom_normalize @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_spolynom_simplify_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_spolynom_simplify) @ (cHOL4.ringNorm.r_spolynom_simplify @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.rat_r_interp_sp_def,((cHOL4.min.= @ cHOL4.ratRing.rat_r_interp_sp) @ (cHOL4.ringNorm.r_interp_sp @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv)))) (TratRing.RAT_IS_RING,(cHOL4.ring.is_ring @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv))) (TratRing.rat_ring_thms,((cHOL4.bool./\ @ (cHOL4.ring.is_ring @ (((((cHOL4.ring.ring @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.rat.rat_add) @ cHOL4.rat.rat_mul) @ cHOL4.rat.rat_ainv))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_interp_p @ X0) @ X1)) @ ((cHOL4.ratRing.rat_r_interp_cs @ X0) @ (cHOL4.ratRing.rat_polynom_simplify @ X1)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_interp_p @ X0) @ (cHOL4.ringNorm.Pconst @ X2))) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_interp_p @ X0) @ (cHOL4.ringNorm.Pvar @ X3))) @ ((cHOL4.quote.varmap_find @ X3) @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_interp_p @ X0) @ ((cHOL4.ringNorm.Pplus @ X4) @ X5))) @ ((cHOL4.rat.rat_add @ ((cHOL4.ratRing.rat_interp_p @ X0) @ X4)) @ ((cHOL4.ratRing.rat_interp_p @ X0) @ X5)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_interp_p @ X0) @ ((cHOL4.ringNorm.Pmult @ X4) @ X5))) @ ((cHOL4.rat.rat_mul @ ((cHOL4.ratRing.rat_interp_p @ X0) @ X4)) @ ((cHOL4.ratRing.rat_interp_p @ X0) @ X5)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_interp_p @ X0) @ (cHOL4.ringNorm.Popp @ X4))) @ (cHOL4.rat.rat_ainv @ ((cHOL4.ratRing.rat_interp_p @ X0) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ cHOL4.quote.End_idx) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ X6)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Right_idx @ X9)) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ ((cHOL4.quote.varmap_find @ X9) @ X7))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ (cHOL4.quote.Left_idx @ X9)) @ (((cHOL4.quote.Node_vm @ X6) @ X8) @ X7))) @ ((cHOL4.quote.varmap_find @ X9) @ X8))))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.quote.varmap_find @ X3) @ cHOL4.quote.Empty_vm)) @ (cHOL4.min.|at| @ (^[X6]: cHOL4.bool.T)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ X15) @ X14)) @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ X10))) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X10))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ X15) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ X10))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X14)) @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ X10))) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10)))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X13) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X11) @ X10))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X10))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X16]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ X16) @ cHOL4.canonical.Nil_monom)) @ X16)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X17]: (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X19) @ X18) @ X17))) @ (((cHOL4.canonical.Cons_monom @ X19) @ X18) @ X17))))))))) @ (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X21) @ X20))) @ ((cHOL4.canonical.Cons_varlist @ X21) @ X20))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_monom_insert @ X15) @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ X15) @ X14)) @ X13) @ X10)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ (((cHOL4.ratRing.rat_r_monom_insert @ X15) @ X13) @ X10))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_monom_insert @ X15) @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ X15) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X13) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ (((cHOL4.ratRing.rat_r_monom_insert @ X15) @ X13) @ X10))))))))))))) @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_monom_insert @ X15) @ X13) @ cHOL4.canonical.Nil_monom)) @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ cHOL4.canonical.Nil_monom))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_varlist_insert @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X14)) @ X13) @ X10)) @ (((cHOL4.canonical.Cons_monom @ X14) @ X12) @ ((cHOL4.ratRing.rat_r_varlist_insert @ X13) @ X10))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_varlist_insert @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X13) @ X12)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X10))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X13) @ X10)) @ ((cHOL4.canonical.Cons_varlist @ X12) @ ((cHOL4.ratRing.rat_r_varlist_insert @ X13) @ X10))))))))))) @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_varlist_insert @ X13) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.canonical.Cons_varlist @ X13) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar @ X22) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.canonical.Cons_monom @ ((cHOL4.rat.rat_mul @ X22) @ X2)) @ X23) @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar @ X22) @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar @ X22) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.canonical.Cons_monom @ X22) @ X23) @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar @ X22) @ X24)))))))))) @ (cHOL4.bool.! @ (^[X22]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar @ X22) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar2 @ X25) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.ratRing.rat_r_monom_insert @ X2) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar2 @ X25) @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar2 @ X25) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.ratRing.rat_r_varlist_insert @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar2 @ X25) @ X24)))))))))) @ (cHOL4.bool.! @ (^[X25]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar2 @ X25) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ X22) @ X25) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.ratRing.rat_r_monom_insert @ ((cHOL4.rat.rat_mul @ X22) @ X2)) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ X22) @ X25) @ X24)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ X22) @ X25) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.ratRing.rat_r_monom_insert @ X22) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X25) @ X23)) @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ X22) @ X25) @ X24)))))))))))) @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X25]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ X22) @ X25) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X15]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_prod @ (((cHOL4.canonical.Cons_monom @ X15) @ X13) @ X11)) @ X26)) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ X15) @ X13) @ X26)) @ ((cHOL4.ratRing.rat_r_canonical_sum_prod @ X11) @ X26)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_prod @ ((cHOL4.canonical.Cons_varlist @ X13) @ X11)) @ X26)) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ ((cHOL4.ratRing.rat_r_canonical_sum_scalar2 @ X13) @ X26)) @ ((cHOL4.ratRing.rat_r_canonical_sum_prod @ X11) @ X26)))))))))) @ (cHOL4.bool.! @ (^[X26]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_canonical_sum_prod @ cHOL4.canonical.Nil_monom) @ X26)) @ cHOL4.canonical.Nil_monom)))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ X24)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.canonical.Cons_varlist @ X23) @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ X24))) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ X24)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.canonical.Cons_varlist @ X23) @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ X24)))))))) @ ((cHOL4.min.= @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_ivl_aux @ X0) @ X27) @ cHOL4.list.NIL)) @ ((cHOL4.quote.varmap_find @ X27) @ X0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X28]: (cHOL4.bool.! @ (^[X29]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_ivl_aux @ X0) @ X27) @ ((cHOL4.list.CONS @ X28) @ X29))) @ ((cHOL4.rat.rat_mul @ ((cHOL4.quote.varmap_find @ X27) @ X0)) @ (((cHOL4.ratRing.rat_r_ivl_aux @ X0) @ X28) @ X29))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_interp_vl @ X0) @ cHOL4.list.NIL)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X30]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_interp_vl @ X0) @ ((cHOL4.list.CONS @ X27) @ X30))) @ (((cHOL4.ratRing.rat_r_ivl_aux @ X0) @ X27) @ X30)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_interp_m @ X0) @ X2) @ cHOL4.list.NIL)) @ X2)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X27]: (cHOL4.bool.! @ (^[X30]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_interp_m @ X0) @ X2) @ ((cHOL4.list.CONS @ X27) @ X30))) @ ((cHOL4.rat.rat_mul @ X2) @ (((cHOL4.ratRing.rat_r_ivl_aux @ X0) @ X27) @ X30))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ X31) @ cHOL4.canonical.Nil_monom)) @ X31)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ X31) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ ((cHOL4.rat.rat_add @ X31) @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ ((cHOL4.ratRing.rat_r_interp_vl @ X0) @ X23)) @ X24)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X31]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ X31) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ ((cHOL4.rat.rat_add @ X31) @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ (((cHOL4.ratRing.rat_r_interp_m @ X0) @ X2) @ X23)) @ X24)))))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_interp_cs @ X0) @ cHOL4.canonical.Nil_monom)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_interp_cs @ X0) @ ((cHOL4.canonical.Cons_varlist @ X23) @ X24))) @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ ((cHOL4.ratRing.rat_r_interp_vl @ X0) @ X23)) @ X24))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X24]: ((cHOL4.min.= @ ((cHOL4.ratRing.rat_r_interp_cs @ X0) @ (((cHOL4.canonical.Cons_monom @ X2) @ X23) @ X24))) @ (((cHOL4.ratRing.rat_r_ics_aux @ X0) @ (((cHOL4.ratRing.rat_r_interp_m @ X0) @ X2) @ X23)) @ X24))))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_polynom_normalize @ (cHOL4.ringNorm.Pvar @ X3))) @ ((cHOL4.canonical.Cons_varlist @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL)) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_polynom_normalize @ (cHOL4.ringNorm.Pconst @ X2))) @ (((cHOL4.canonical.Cons_monom @ X2) @ cHOL4.list.NIL) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X32]: (cHOL4.bool.! @ (^[X33]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_polynom_normalize @ ((cHOL4.ringNorm.Pplus @ X32) @ X33))) @ ((cHOL4.ratRing.rat_r_canonical_sum_merge @ (cHOL4.ratRing.rat_polynom_normalize @ X32)) @ (cHOL4.ratRing.rat_polynom_normalize @ X33)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X32]: (cHOL4.bool.! @ (^[X33]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_polynom_normalize @ ((cHOL4.ringNorm.Pmult @ X32) @ X33))) @ ((cHOL4.ratRing.rat_r_canonical_sum_prod @ (cHOL4.ratRing.rat_polynom_normalize @ X32)) @ (cHOL4.ratRing.rat_polynom_normalize @ X33)))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_polynom_normalize @ (cHOL4.ringNorm.Popp @ X1))) @ (((cHOL4.ratRing.rat_r_canonical_sum_scalar3 @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.list.NIL) @ (cHOL4.ratRing.rat_polynom_normalize @ X1)))))))))) @ (cHOL4.bool.! @ (^[X34]: ((cHOL4.min.= @ (cHOL4.ratRing.rat_polynom_simplify @ X34)) @ (cHOL4.ratRing.rat_r_canonical_sum_simplify @ (cHOL4.ratRing.rat_polynom_normalize @ X34))))))))))))))))))))))) (Trat.rat_equiv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_equiv @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.frac.frac_dnm @ X0))))))))) (Trat.rat_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.rat.rat_equiv @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.rat.rat_equiv @ X2))))))) @ X0)))) (Trat.rat_bijections,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat_CLASS @ (cHOL4.rat.rep_rat_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.rat.rat_equiv @ X3) @ X3)) @ ((cHOL4.min.= @ X2) @ (cHOL4.rat.rat_equiv @ X3)))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.rat.rep_rat_CLASS @ (cHOL4.rat.abs_rat_CLASS @ X1))) @ X1)))))) (Trat.rep_rat_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rep_rat @ X0)) @ (cHOL4.min.|at| @ (cHOL4.rat.rep_rat_CLASS @ X0)))))) (Trat.abs_rat_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat_CLASS @ (cHOL4.rat.rat_equiv @ X0)))))) (Trat.rat_nmr_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_nmr @ X0)) @ (cHOL4.frac.frac_nmr @ (cHOL4.rat.rep_rat @ X0)))))) (Trat.rat_dnm_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_dnm @ X0)) @ (cHOL4.frac.frac_dnm @ (cHOL4.rat.rep_rat @ X0)))))) (Trat.rat_sgn_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.frac.frac_sgn @ (cHOL4.rat.rep_rat @ X0)))))) (Trat.rat_0_def,((cHOL4.min.= @ cHOL4.rat.rat_0) @ (cHOL4.rat.abs_rat @ cHOL4.frac.frac_0))) (Trat.rat_1_def,((cHOL4.min.= @ cHOL4.rat.rat_1) @ (cHOL4.rat.abs_rat @ cHOL4.frac.frac_1))) (Trat.rat_ainv_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ X0)) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_ainv @ (cHOL4.rat.rep_rat @ X0))))))) (Trat.rat_minv_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_minv @ X0)) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_minv @ (cHOL4.rat.rep_rat @ X0))))))) (Trat.rat_add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ X1)) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ (cHOL4.rat.rep_rat @ X0)) @ (cHOL4.rat.rep_rat @ X1))))))))) (Trat.rat_sub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ (cHOL4.rat.rep_rat @ X0)) @ (cHOL4.rat.rep_rat @ X1))))))))) (Trat.rat_mul_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ (cHOL4.rat.rep_rat @ X0)) @ (cHOL4.rat.rep_rat @ X1))))))))) (Trat.rat_div_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_div @ X0) @ X1)) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ (cHOL4.rat.rep_rat @ X0)) @ (cHOL4.rat.rep_rat @ X1))))))))) (Trat.rat_les_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ ((cHOL4.rat.rat_sub @ X1) @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Trat.rat_gre_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_gre @ X0) @ X1)) @ ((cHOL4.rat.rat_les @ X1) @ X0))))))) (Trat.rat_leq_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_leq @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Trat.rat_geq_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_geq @ X0) @ X1)) @ ((cHOL4.rat.rat_leq @ X1) @ X0))))))) (Trat.rat_cons_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_cons @ X0) @ X1)) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ ((cHOL4.integer.int_mul @ ((cHOL4.integer.int_mul @ (cHOL4.intExtension.SGN @ X0)) @ (cHOL4.intExtension.SGN @ X1))) @ (cHOL4.integer.ABS @ X0))) @ (cHOL4.integer.ABS @ X1)))))))))) (Trat.rat_of_num_primitive_def,((cHOL4.min.= @ cHOL4.rat.rat_of_num) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.num.SUC @ X1)) @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X1))))))))) @ (^[X2]: (^[X3]: (((cHOL4.arithmetic.num_CASE @ X3) @ (cHOL4.combin.I @ cHOL4.rat.rat_0)) @ (^[X4]: (((cHOL4.arithmetic.num_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.rat.rat_1)) @ (^[X1]: (cHOL4.combin.I @ ((cHOL4.rat.rat_add @ (X2 @ (cHOL4.num.SUC @ X1))) @ cHOL4.rat.rat_1))))))))))) (Trat.RAT_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_equiv @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.rat.rat_equiv @ X0)) @ (cHOL4.rat.rat_equiv @ X1)))))))) (Trat.RAT_EQUIV_REF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.rat.rat_equiv @ X0) @ X0)))) (Trat.RAT_EQUIV_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_equiv @ X0) @ X1)) @ ((cHOL4.rat.rat_equiv @ X1) @ X0))))))) (Trat.RAT_EQUIV_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_equiv @ X0) @ X1)) @ ((cHOL4.rat.rat_equiv @ X1) @ X2))) @ ((cHOL4.rat.rat_equiv @ X0) @ X2))))))))) (Trat.RAT_EQUIV_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_equiv @ X0)) @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.frac.frac_mul @ X0) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X2) @ X2)))) @ ((cHOL4.frac.frac_mul @ X1) @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ X3) @ X3))))))))))))))) (Trat.rat_ABS_REP_CLASS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat_CLASS @ (cHOL4.rat.rep_rat_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.rat.rat_equiv @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.rat.rat_equiv @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.rat.rep_rat_CLASS @ (cHOL4.rat.abs_rat_CLASS @ X1))) @ X1)))))) (Trat.rat_QUOTIENT,(((cHOL4.quotient.QUOTIENT @ cHOL4.rat.rat_equiv) @ cHOL4.rat.abs_rat) @ cHOL4.rat.rep_rat)) (Trat.rat_def,(((cHOL4.quotient.QUOTIENT @ cHOL4.rat.rat_equiv) @ cHOL4.rat.abs_rat) @ cHOL4.rat.rep_rat)) (Trat.rat_of_num_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.num.SUC @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X1))))))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Trat.rat_of_num_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ cHOL4.rat.rat_0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.rat.rat_1)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ X0)))) @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ X0))) @ cHOL4.rat.rat_1))))))) (Trat.rat_of_num_def_compute,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ cHOL4.rat.rat_0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.rat.rat_1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))))) @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0)))) @ cHOL4.rat.rat_1))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))))) @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0)))) @ cHOL4.rat.rat_1)))))))) (Trat.rat_0,((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.abs_rat @ cHOL4.frac.frac_0))) (Trat.rat_1,((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.rat.abs_rat @ cHOL4.frac.frac_1))) (Trat.RAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ (cHOL4.rat.rep_rat @ X0))) @ X0)))) (Trat.RAT_ABS_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ ((cHOL4.rat.rat_equiv @ X0) @ X1))))))) (Trat.RAT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.frac.frac_dnm @ X0))))))))) (Trat.RAT_EQ_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.rat.rat_nmr @ X0)) @ (cHOL4.rat.rat_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.rat.rat_nmr @ X1)) @ (cHOL4.rat.rat_dnm @ X0))))))))) (Trat.RAT_NMREQ0_CONG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Trat.RAT_NMRLT0_CONG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_lt @ (cHOL4.frac.frac_nmr @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Trat.RAT_NMRGT0_CONG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.integer.int_gt @ (cHOL4.frac.frac_nmr @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0)))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_gt @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Trat.RAT_SGN_CONG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.frac.frac_sgn @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0)))) @ (cHOL4.frac.frac_sgn @ X0))))) (Trat.RAT_AINV_CONG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_ainv @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))))) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_ainv @ X0)))))) (Trat.RAT_MINV_CONG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_minv @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))))) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_minv @ X0))))))) (Trat.RAT_ADD_CONG1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ X1)))))))) (Trat.RAT_ADD_CONG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ X1)))))))) (Trat.RAT_ADD_CONG,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ X1))))))))) (Trat.RAT_MUL_CONG1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ X1)))))))) (Trat.RAT_MUL_CONG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ X1)))))))) (Trat.RAT_MUL_CONG,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ X1))))))))) (Trat.RAT_SUB_CONG1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ X1)))))))) (Trat.RAT_SUB_CONG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ X1)))))))) (Trat.RAT_SUB_CONG,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ X1))))))))) (Trat.RAT_DIV_CONG1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ X1))))))))) (Trat.RAT_DIV_CONG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ X1))))))))) (Trat.RAT_DIV_CONG,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X0))) @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ (cHOL4.rat.rep_rat @ (cHOL4.rat.abs_rat @ X1))))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ X1)))))))))) (Trat.RAT_NMRDNM_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X0))))) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X0)))))) (Trat.RAT_AINV_CALCULATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.abs_rat @ X0))) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_ainv @ X0)))))) (Trat.RAT_MINV_CALCULATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.frac.frac_nmr @ X0)))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_minv @ (cHOL4.rat.abs_rat @ X0))) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.frac_minv @ X0))))))) (Trat.RAT_ADD_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_add @ X0) @ X1)))))))) (Trat.RAT_SUB_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_sub @ X0) @ X1)))))))) (Trat.RAT_MUL_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_mul @ X0) @ X1)))))))) (Trat.RAT_DIV_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_div @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_div @ X0) @ X1))))))))) (Trat.RAT_EQ_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ ((cHOL4.min.= @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.frac.frac_dnm @ X0))))))))) (Trat.RAT_LES_CALCULATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.abs_rat @ X0)) @ (cHOL4.rat.abs_rat @ X1))) @ ((cHOL4.integer.int_lt @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X0)) @ (cHOL4.frac.frac_dnm @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.frac.frac_nmr @ X1)) @ (cHOL4.frac.frac_dnm @ X0))))))))) (Trat.RAT_OF_NUM_CALCULATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.abs_rat @ (cHOL4.frac.abs_frac @ ((cHOL4.pair.|comma| @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Trat.RAT_EQ0_NMR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Trat.RAT_0LES_NMR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_lt @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_nmr @ X0)))))) (Trat.RAT_LES0_NMR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_lt @ (cHOL4.rat.rat_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Trat.RAT_0LEQ_NMR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_leq @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.integer.int_le @ (cHOL4.integer.int_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_nmr @ X0)))))) (Trat.RAT_LEQ0_NMR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_leq @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.integer.int_le @ (cHOL4.rat.rat_nmr @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))))) (Trat.RAT_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ ((cHOL4.rat.rat_add @ X1) @ X2))) @ ((cHOL4.rat.rat_add @ ((cHOL4.rat.rat_add @ X0) @ X1)) @ X2))))))))) (Trat.RAT_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ ((cHOL4.rat.rat_mul @ X1) @ X2))) @ ((cHOL4.rat.rat_mul @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ X2))))))))) (Trat.RAT_ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ X1)) @ ((cHOL4.rat.rat_add @ X1) @ X0))))))) (Trat.RAT_MUL_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ ((cHOL4.rat.rat_mul @ X1) @ X0))))))) (Trat.RAT_ADD_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ X0)))) (Trat.RAT_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (Trat.RAT_MUL_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Trat.RAT_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (Trat.RAT_ADD_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ (cHOL4.rat.rat_ainv @ X0))) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))) (Trat.RAT_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_ainv @ X0)) @ X0)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))) (Trat.RAT_MUL_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ (cHOL4.rat.rat_minv @ X0))) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Trat.RAT_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_minv @ X0)) @ X0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Trat.RAT_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ ((cHOL4.rat.rat_add @ X0) @ X1)) @ X2)) @ ((cHOL4.rat.rat_add @ ((cHOL4.rat.rat_mul @ X0) @ X2)) @ ((cHOL4.rat.rat_mul @ X1) @ X2)))))))))) (Trat.RAT_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X2) @ ((cHOL4.rat.rat_add @ X0) @ X1))) @ ((cHOL4.rat.rat_add @ ((cHOL4.rat.rat_mul @ X2) @ X0)) @ ((cHOL4.rat.rat_mul @ X2) @ X1)))))))))) (Trat.RAT_1_NOT_0,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) (Trat.RAT_MUL_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))) (Trat.RAT_MUL_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))) (Trat.RAT_SUB_ADDAINV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ ((cHOL4.rat.rat_add @ X0) @ (cHOL4.rat.rat_ainv @ X1)))))))) (Trat.RAT_DIV_MULMINV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_div @ X0) @ X1)) @ ((cHOL4.rat.rat_mul @ X0) @ (cHOL4.rat.rat_minv @ X1)))))))) (Trat.RAT_AINV_0,((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) (Trat.RAT_AINV_AINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_ainv @ X0))) @ X0)))) (Trat.RAT_AINV_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ ((cHOL4.rat.rat_add @ X0) @ X1))) @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_ainv @ X0)) @ (cHOL4.rat.rat_ainv @ X1)))))))) (Trat.RAT_AINV_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ ((cHOL4.rat.rat_sub @ X0) @ X1))) @ ((cHOL4.rat.rat_sub @ X1) @ X0))))))) (Trat.RAT_AINV_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ ((cHOL4.rat.rat_mul @ X0) @ X1))) @ ((cHOL4.rat.rat_mul @ X0) @ (cHOL4.rat.rat_ainv @ X1)))))))) (Trat.RAT_AINV_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ ((cHOL4.rat.rat_mul @ X0) @ X1))) @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_ainv @ X0)) @ X1))))))) (Trat.RAT_AINV_MINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_minv @ X0))) @ (cHOL4.rat.rat_minv @ (cHOL4.rat.rat_ainv @ X0))))))) (Trat.RAT_SUB_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.rat.rat_sub @ ((cHOL4.rat.rat_mul @ X0) @ X2)) @ ((cHOL4.rat.rat_mul @ X1) @ X2)))))))))) (Trat.RAT_SUB_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X2) @ ((cHOL4.rat.rat_sub @ X0) @ X1))) @ ((cHOL4.rat.rat_sub @ ((cHOL4.rat.rat_mul @ X2) @ X0)) @ ((cHOL4.rat.rat_mul @ X2) @ X1)))))))))) (Trat.RAT_SUB_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.rat.rat_ainv @ X0))))) (Trat.RAT_SUB_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ X0)))) (Trat.RAT_SUB_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ X0) @ X0)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))) (Trat.RAT_EQ_SUB0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trat.RAT_EQ_0SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ ((cHOL4.rat.rat_sub @ X0) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trat.RAT_SGN_CALCULATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ (cHOL4.rat.abs_rat @ X0))) @ (cHOL4.frac.frac_sgn @ X0))))) (Trat.RAT_SGN_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.rat.rat_gre @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))))))) (Trat.RAT_SGN_0,((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) (Trat.RAT_SGN_AINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.integer.int_neg @ (cHOL4.rat.rat_sgn @ (cHOL4.rat.rat_ainv @ X0)))) @ (cHOL4.rat.rat_sgn @ X0))))) (Trat.RAT_SGN_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ ((cHOL4.rat.rat_mul @ X0) @ X1))) @ ((cHOL4.integer.int_mul @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.rat.rat_sgn @ X1)))))))) (Trat.RAT_SGN_MINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ (cHOL4.rat.rat_minv @ X0))) @ (cHOL4.rat.rat_sgn @ X0)))))) (Trat.RAT_SGN_TOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Trat.RAT_SGN_COMPLEMENT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_sgn @ X0)) @ (cHOL4.integer.int_of_num @ cHOL4.num.0))))))))) (Trat.RAT_LES_REF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.rat.rat_les @ X0) @ X0))))) (Trat.RAT_LES_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.rat.rat_les @ X1) @ X0)))))))) (Trat.RAT_LES_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.rat.rat_les @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ X0) @ X2))))))))) (Trat.RAT_LES_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.rat.rat_les @ X1) @ X0)))))))) (Trat.RAT_LEQ_REF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.rat.rat_leq @ X0) @ X0)))) (Trat.RAT_LEQ_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_leq @ X0) @ X1)) @ ((cHOL4.rat.rat_leq @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trat.RAT_LEQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_leq @ X0) @ X1)) @ ((cHOL4.rat.rat_leq @ X1) @ X2))) @ ((cHOL4.rat.rat_leq @ X0) @ X2))))))))) (Trat.RAT_LES_01,((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Trat.RAT_LES_IMP_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.rat.rat_leq @ X0) @ X1))))))) (Trat.RAT_LES_IMP_NEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Trat.RAT_LEQ_LES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.rat.rat_les @ X1) @ X0))) @ ((cHOL4.rat.rat_leq @ X0) @ X1))))))) (Trat.RAT_LES_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.rat.rat_leq @ X1) @ X0))) @ ((cHOL4.rat.rat_les @ X0) @ X1))))))) (Trat.RAT_LES_LEQ2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_leq @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.rat.rat_leq @ X1) @ X0))))))))) (Trat.RAT_LES_LEQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ ((cHOL4.rat.rat_leq @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ X0) @ X2))))))))) (Trat.RAT_LEQ_LES_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_leq @ X0) @ X1)) @ ((cHOL4.rat.rat_les @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ X0) @ X2))))))))) (Trat.RAT_0LES_0LES_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ ((cHOL4.rat.rat_add @ X0) @ X1))))))))) (Trat.RAT_LES0_LES0_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_add @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))))))) (Trat.RAT_0LES_0LEQ_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.rat.rat_leq @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ ((cHOL4.rat.rat_add @ X0) @ X1))))))))) (Trat.RAT_LES0_LEQ0_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.==> @ ((cHOL4.rat.rat_leq @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_add @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))))))) (Trat.RAT_AINV_ONE_ONE,(cHOL4.bool.ONE_ONE @ cHOL4.rat.rat_ainv)) (Trat.RAT_ADD_ONE_ONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.ONE_ONE @ (cHOL4.rat.rat_add @ X0))))) (Trat.RAT_MUL_ONE_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.ONE_ONE @ (cHOL4.rat.rat_mul @ X0)))))) (Trat.RAT_EQ_AINV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ X0)) @ (cHOL4.rat.rat_ainv @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trat.RAT_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X2) @ X0)) @ ((cHOL4.rat.rat_add @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Trat.RAT_EQ_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ X2)) @ ((cHOL4.rat.rat_add @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Trat.RAT_EQ_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X2)) @ ((cHOL4.rat.rat_mul @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Trat.RAT_EQ_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X2) @ X0)) @ ((cHOL4.rat.rat_mul @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Trat.RAT_AINV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ X0)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_ainv @ X1)))))))) (Trat.RAT_LSUB_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.rat.rat_add @ X1) @ X2)))))))))) (Trat.RAT_RSUB_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.rat.rat_sub @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ X0) @ X2)) @ X1))))))))) (Trat.RAT_LDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_div @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.rat.rat_mul @ X1) @ X2))))))))))) (Trat.RAT_RDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.rat.rat_div @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X2)) @ X1)))))))))) (Trat.RAT_LES_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_add @ X0) @ X2)) @ ((cHOL4.rat.rat_add @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ X0) @ X1))))))))) (Trat.RAT_LES_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_add @ X2) @ X0)) @ ((cHOL4.rat.rat_add @ X2) @ X1))) @ ((cHOL4.rat.rat_les @ X0) @ X1))))))))) (Trat.RAT_LES_AINV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_ainv @ X0)) @ (cHOL4.rat.rat_ainv @ X1))) @ ((cHOL4.rat.rat_les @ X1) @ X0))))))) (Trat.RAT_LSUB_LES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.rat.rat_les @ X0) @ ((cHOL4.rat.rat_add @ X1) @ X2)))))))))) (Trat.RAT_RSUB_LES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ X0) @ ((cHOL4.rat.rat_sub @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_add @ X0) @ X2)) @ X1))))))))) (Trat.RAT_LES_RMUL_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X0) @ X2)) @ ((cHOL4.rat.rat_mul @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ X0) @ X1)))))))))) (Trat.RAT_LES_LMUL_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X2) @ X0)) @ ((cHOL4.rat.rat_mul @ X2) @ X1))) @ ((cHOL4.rat.rat_les @ X0) @ X1)))))))))) (Trat.RAT_LES_RMUL_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X1) @ X2)) @ ((cHOL4.rat.rat_mul @ X0) @ X2))) @ ((cHOL4.rat.rat_les @ X0) @ X1)))))))))) (Trat.RAT_LES_LMUL_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X2) @ X1)) @ ((cHOL4.rat.rat_mul @ X2) @ X0))) @ ((cHOL4.rat.rat_les @ X0) @ X1)))))))))) (Trat.RAT_AINV_LES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_ainv @ X0)) @ X1)) @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_ainv @ X1)) @ X0))))))) (Trat.RAT_LDIV_LES_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_div @ X0) @ X1)) @ X2)) @ ((cHOL4.rat.rat_les @ X0) @ ((cHOL4.rat.rat_mul @ X1) @ X2))))))))))) (Trat.RAT_LDIV_LES_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_div @ X0) @ X1)) @ X2)) @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X1) @ X2)) @ X0)))))))))) (Trat.RAT_RDIV_LES_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ X0) @ ((cHOL4.rat.rat_div @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X0) @ X2)) @ X1)))))))))) (Trat.RAT_RDIV_LES_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X2) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ X0) @ ((cHOL4.rat.rat_div @ X1) @ X2))) @ ((cHOL4.rat.rat_les @ X1) @ ((cHOL4.rat.rat_mul @ X0) @ X2))))))))))) (Trat.RAT_LES_SUB0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_sub @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.rat.rat_les @ X0) @ X1))))))) (Trat.RAT_LES_0SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ ((cHOL4.rat.rat_sub @ X0) @ X1))) @ ((cHOL4.rat.rat_les @ X1) @ X0))))))) (Trat.RAT_MINV_LES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_minv @ X0)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ (cHOL4.rat.rat_minv @ X0))) @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0))))))) (Trat.RAT_MUL_SIGN_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ ((cHOL4.rat.rat_mul @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.rat.rat_les @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_les @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.rat.rat_les @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.rat.rat_les @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ X1)))))))))) (Trat.RAT_NO_ZERODIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))))))) (Trat.RAT_NO_ZERODIV_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))))))))) (Trat.RAT_NO_IDDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ X0) @ X1)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))))))))) (Trat.RAT_DENSE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rat.rat_les @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.rat.rat_les @ X0) @ X2)) @ ((cHOL4.rat.rat_les @ X2) @ X1)))))))))) (Trat.RAT_SAVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_save @ X1) @ X2)))))))))) (Trat.RAT_SAVE_MINV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_save @ X0) @ X1))) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.rat.rat_minv @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_save @ X0) @ X1)))) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_save @ ((cHOL4.integer.int_mul @ (cHOL4.intExtension.SGN @ X0)) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.integer.Num @ ((cHOL4.integer.int_sub @ (cHOL4.integer.ABS @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Trat.RAT_SAVE_TO_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_save @ X0) @ X1))) @ ((cHOL4.rat.rat_cons @ X0) @ ((cHOL4.integer.int_add @ (cHOL4.integer.int_of_num @ X1)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Trat.RAT_OF_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ cHOL4.num.0)) @ cHOL4.rat.rat_0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ X1)) @ cHOL4.rat.rat_1)))))))) (Trat.RAT_SAVE_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.abs_rat @ ((cHOL4.frac.frac_save @ (cHOL4.integer.int_of_num @ X0)) @ cHOL4.num.0)))))) (Trat.RAT_CONS_TO_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.rat.rat_cons @ (cHOL4.integer.int_of_num @ X0)) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.rat.rat_of_num @ X0))) @ ((cHOL4.min.= @ ((cHOL4.rat.rat_cons @ (cHOL4.integer.int_neg @ (cHOL4.integer.int_of_num @ X0))) @ (cHOL4.integer.int_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))))))) (Trat.RAT_0,((cHOL4.min.= @ cHOL4.rat.rat_0) @ (cHOL4.rat.rat_of_num @ cHOL4.num.0))) (Trat.RAT_1,((cHOL4.min.= @ cHOL4.rat.rat_1) @ (cHOL4.rat.rat_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Trat.RAT_ADD_NUM_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.rat_of_num @ X1))) @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))) @ (cHOL4.rat.rat_of_num @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.- @ X1) @ X0))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X1)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.- @ X1) @ X0)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_add @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X1)))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))))))) (Trat.RAT_MUL_NUM_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.rat_of_num @ X1))) @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))) @ (cHOL4.rat.rat_of_num @ X1))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X1)))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rat.rat_mul @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X1)))) @ (cHOL4.rat.rat_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))))) (Trat.RAT_EQ_NUM_CALCULATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.rat_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_of_num @ X0)) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))) @ (cHOL4.rat.rat_of_num @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X0))) @ (cHOL4.rat.rat_ainv @ (cHOL4.rat.rat_of_num @ X1)))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Treal_sigma.REAL_SUM_IMAGE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ X1)) @ (((cHOL4.pred_set.ITSET @ (^[X2]: (^[X3]: ((cHOL4.realax.real_add @ (X0 @ X2)) @ X3)))) @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal_sigma.REAL_SUM_IMAGE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2))) @ ((cHOL4.realax.real_add @ (X0 @ X1)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ ((cHOL4.pred_set.DELETE @ X2) @ X1))))))))))))) (Treal_sigma.REAL_SUM_IMAGE_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY))) @ (X0 @ X1))))))) (Treal_sigma.REAL_SUM_IMAGE_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X2))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ X1)))))))) (Treal_sigma.REAL_SUM_IMAGE_SPOS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0))))))))) (Treal_sigma.REAL_SUM_IMAGE_NONZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)))))))))) (Treal_sigma.REAL_SUM_IMAGE_IF_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ (X1 @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: (((cHOL4.bool.COND @ (X1 @ X3)) @ (X2 @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0)))))))))) (Treal_sigma.REAL_SUM_IMAGE_FINITE_SAME,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X0))) @ (X1 @ X2)))))))))))) (Treal_sigma.REAL_SUM_IMAGE_FINITE_CONST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ X3)) @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X0))) @ X2))))))))))) (Treal_sigma.REAL_SUM_IMAGE_IN_IF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X0)))))))) (Treal_sigma.REAL_SUM_IMAGE_CMUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.realax.real_mul @ X2) @ (X1 @ X3)))) @ X0)) @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0))))))))))) (Treal_sigma.REAL_SUM_IMAGE_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X2]: (cHOL4.realax.real_neg @ (X1 @ X2)))) @ X0)) @ (cHOL4.realax.real_neg @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0))))))))) (Treal_sigma.REAL_SUM_IMAGE_IMAGE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X1) @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))))) (Treal_sigma.REAL_SUM_IMAGE_DISJOINT_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.realax.real_add @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X1))))))))))) (Treal_sigma.REAL_SUM_IMAGE_EQ_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X0))))))) (Treal_sigma.REAL_SUM_IMAGE_INV_CARD_EQ_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.pred_set.FINITE @ X0))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Treal_sigma.REAL_SUM_IMAGE_INTER_NONZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ ((cHOL4.pred_set.INTER @ X0) @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)))))))) (Treal_sigma.REAL_SUM_IMAGE_INTER_ELIM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X3) @ X2))) @ ((cHOL4.min.= @ (X1 @ X3)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ ((cHOL4.pred_set.INTER @ X0) @ X2))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0))))))))))) (Treal_sigma.REAL_SUM_IMAGE_COUNT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ (cHOL4.pred_set.count @ X1))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0))))))) (Treal_sigma.REAL_SUM_IMAGE_MONO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.real.real_lte @ (X1 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0))))))))))) (Treal_sigma.REAL_SUM_IMAGE_POS_MEM_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X1 @ X2)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.real.real_lte @ (X1 @ X2)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)))))))))))) (Treal_sigma.REAL_SUM_IMAGE_CONST_EQ_1_EQ_INV_CARD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X3) @ X0))) @ ((cHOL4.min.= @ (X1 @ X2)) @ (X1 @ X3))))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.min.= @ (X1 @ X2)) @ (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.pred_set.CARD @ X0)))))))))))))) (Treal_sigma.REAL_SUM_IMAGE_ADD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.realax.real_add @ (X1 @ X3)) @ (X2 @ X3)))) @ X0)) @ ((cHOL4.realax.real_add @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0))))))))))) (Treal_sigma.REAL_SUM_IMAGE_REAL_SUM_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.pred_set.FINITE @ X1))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (X2 @ X3)) @ X1))) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((X2 @ (cHOL4.pair.FST @ X4)) @ (cHOL4.pair.SND @ X4)))) @ ((cHOL4.pred_set.CROSS @ X0) @ X1))))))))))) (Treal_sigma.REAL_SUM_IMAGE_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X1]: (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal_sigma.SEQ_REAL_SUM_IMAGE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.seq.--> @ (^[X4]: ((X1 @ X4) @ X3))) @ (X2 @ X3)))))) @ ((cHOL4.seq.--> @ (^[X4]: ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (X1 @ X4)) @ X0))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0))))))))))) (Treal_sigma.NESTED_REAL_SUM_IMAGE_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (X0 @ X3)) @ X2))) @ X1)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X4]: ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X5]: ((X0 @ X5) @ X4))) @ X1))) @ X2)))))))))) (Treal_sigma.REAL_SUM_IMAGE_EQ_sum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ X1)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ (cHOL4.pred_set.count @ X0)))))))) (Treal_sigma.REAL_SUM_IMAGE_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.realax.real_mul @ (X0 @ X2)) @ (X0 @ X3)))))) @ ((cHOL4.pred_set.CROSS @ X1) @ X1))))))))) (Treal_sigma.REAL_SUM_IMAGE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3))))))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0)))))))))) (Treal_sigma.REAL_SUM_IMAGE_IN_IF_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X3) @ X0)) @ (X1 @ X3)) @ X2))) @ X0)))))))))) (Treal_sigma.REAL_SUM_IMAGE_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (^[X3]: ((cHOL4.real.real_sub @ (X1 @ X3)) @ (X2 @ X3)))) @ X0)) @ ((cHOL4.real.real_sub @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X1) @ X0)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X2) @ X0))))))))))) (Treal_sigma.REAL_SUM_IMAGE_MONO_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X3))))))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ X1)) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ X0) @ X2)))))))))) (Treal_sigma.REAL_SUM_IMAGE_CROSS_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (cHOL4.pred_set.FINITE @ X2))) @ ((cHOL4.min.= @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: (X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)))))) @ ((cHOL4.pred_set.CROSS @ X1) @ X2))) @ ((cHOL4.real_sigma.REAL_SUM_IMAGE @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)))))) @ ((cHOL4.pred_set.CROSS @ X2) @ X1))))))))))) (Trealax.treal_0,((cHOL4.min.= @ cHOL4.realax.treal_0) @ ((cHOL4.pair.|comma| @ cHOL4.hreal.hreal_1) @ cHOL4.hreal.hreal_1))) (Trealax.treal_1,((cHOL4.min.= @ cHOL4.realax.treal_1) @ ((cHOL4.pair.|comma| @ ((cHOL4.hreal.hreal_add @ cHOL4.hreal.hreal_1) @ cHOL4.hreal.hreal_1)) @ cHOL4.hreal.hreal_1))) (Trealax.treal_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.treal_neg @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.pair.|comma| @ X1) @ X0))))))) (Trealax.treal_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.treal_add @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ ((cHOL4.hreal.hreal_add @ X0) @ X2)) @ ((cHOL4.hreal.hreal_add @ X1) @ X3)))))))))))) (Trealax.treal_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.treal_mul @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.pair.|comma| @ ((cHOL4.hreal.hreal_add @ ((cHOL4.hreal.hreal_mul @ X0) @ X2)) @ ((cHOL4.hreal.hreal_mul @ X1) @ X3))) @ ((cHOL4.hreal.hreal_add @ ((cHOL4.hreal.hreal_mul @ X0) @ X3)) @ ((cHOL4.hreal.hreal_mul @ X1) @ X2))))))))))))) (Trealax.treal_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.treal_lt @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.hreal.hreal_lt @ ((cHOL4.hreal.hreal_add @ X0) @ X3)) @ ((cHOL4.hreal.hreal_add @ X2) @ X1)))))))))))) (Trealax.treal_inv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.treal_inv @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X1)) @ cHOL4.realax.treal_0) @ (((cHOL4.bool.COND @ ((cHOL4.hreal.hreal_lt @ X1) @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.hreal.hreal_add @ (cHOL4.hreal.hreal_inv @ ((cHOL4.hreal.hreal_sub @ X0) @ X1))) @ cHOL4.hreal.hreal_1)) @ cHOL4.hreal.hreal_1)) @ ((cHOL4.pair.|comma| @ cHOL4.hreal.hreal_1) @ ((cHOL4.hreal.hreal_add @ (cHOL4.hreal.hreal_inv @ ((cHOL4.hreal.hreal_sub @ X1) @ X0))) @ cHOL4.hreal.hreal_1)))))))))) (Trealax.treal_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.treal_eq @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ X3)) @ ((cHOL4.hreal.hreal_add @ X2) @ X1)))))))))))) (Trealax.treal_of_hreal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.treal_of_hreal @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.hreal.hreal_add @ X0) @ cHOL4.hreal.hreal_1)) @ cHOL4.hreal.hreal_1))))) (Trealax.hreal_of_treal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.hreal_of_treal @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.min.|at| @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.hreal.hreal_add @ X1) @ X2)))))))))) (Trealax.real_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.realax.treal_eq @ X2))))))) @ X0)))) (Trealax.real_bijections,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_ABS_CLASS @ (cHOL4.realax.real_REP_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X3) @ X3)) @ ((cHOL4.min.= @ X2) @ (cHOL4.realax.treal_eq @ X3)))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.realax.real_REP_CLASS @ (cHOL4.realax.real_ABS_CLASS @ X1))) @ X1)))))) (Trealax.real_REP_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_REP @ X0)) @ (cHOL4.min.|at| @ (cHOL4.realax.real_REP_CLASS @ X0)))))) (Trealax.real_ABS_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_ABS @ X0)) @ (cHOL4.realax.real_ABS_CLASS @ (cHOL4.realax.treal_eq @ X0)))))) (Trealax.real_0,((cHOL4.min.= @ cHOL4.realax.real_0) @ (cHOL4.realax.real_ABS @ cHOL4.realax.treal_0))) (Trealax.real_1,((cHOL4.min.= @ cHOL4.realax.real_1) @ (cHOL4.realax.real_ABS @ cHOL4.realax.treal_1))) (Trealax.real_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_ABS @ (cHOL4.realax.treal_neg @ (cHOL4.realax.real_REP @ X0))))))) (Trealax.real_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.inv @ X0)) @ (cHOL4.realax.real_ABS @ (cHOL4.realax.treal_inv @ (cHOL4.realax.real_REP @ X0))))))) (Trealax.real_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ (cHOL4.realax.real_ABS @ ((cHOL4.realax.treal_add @ (cHOL4.realax.real_REP @ X0)) @ (cHOL4.realax.real_REP @ X1))))))))) (Trealax.real_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.realax.real_ABS @ ((cHOL4.realax.treal_mul @ (cHOL4.realax.real_REP @ X0)) @ (cHOL4.realax.real_REP @ X1))))))))) (Trealax.real_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.treal_lt @ (cHOL4.realax.real_REP @ X0)) @ (cHOL4.realax.real_REP @ X1)))))))) (Trealax.real_of_hreal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_of_hreal @ X0)) @ (cHOL4.realax.real_ABS @ (cHOL4.realax.treal_of_hreal @ X0)))))) (Trealax.hreal_of_real,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.hreal_of_real @ X0)) @ (cHOL4.realax.hreal_of_treal @ (cHOL4.realax.real_REP @ X0)))))) (Trealax.HREAL_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_mul @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ X2)) @ ((cHOL4.hreal.hreal_add @ ((cHOL4.hreal.hreal_mul @ X0) @ X2)) @ ((cHOL4.hreal.hreal_mul @ X1) @ X2)))))))))) (Trealax.HREAL_EQ_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ X0))))))) (Trealax.HREAL_EQ_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ ((cHOL4.hreal.hreal_add @ X0) @ X1)))))))) (Trealax.HREAL_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ ((cHOL4.hreal.hreal_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Trealax.HREAL_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.hreal.hreal_lt @ X0) @ X0))))) (Trealax.HREAL_LT_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.hreal.hreal_lt @ X0) @ ((cHOL4.hreal.hreal_add @ X0) @ X1))))))) (Trealax.HREAL_LT_NE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Trealax.HREAL_LT_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.hreal.hreal_lt @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ X0))))))) (Trealax.HREAL_LT_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.hreal.hreal_lt @ X1) @ X0)))))))) (Trealax.HREAL_LT_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.hreal.hreal_lt @ X0) @ X2)) @ ((cHOL4.hreal.hreal_lt @ X1) @ X3))) @ ((cHOL4.hreal.hreal_lt @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ ((cHOL4.hreal.hreal_add @ X2) @ X3)))))))))))) (Trealax.HREAL_LT_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_lt @ ((cHOL4.hreal.hreal_add @ X0) @ X1)) @ ((cHOL4.hreal.hreal_add @ X0) @ X2))) @ ((cHOL4.hreal.hreal_lt @ X1) @ X2))))))))) (Trealax.TREAL_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.treal_eq @ X0) @ X0)))) (Trealax.TREAL_EQ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ X1) @ X0))))))) (Trealax.TREAL_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ X1) @ X2))) @ ((cHOL4.realax.treal_eq @ X0) @ X2))))))))) (Trealax.TREAL_EQ_EQUIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.realax.treal_eq @ X0)) @ (cHOL4.realax.treal_eq @ X1)))))))) (Trealax.TREAL_EQ_AP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ X0) @ X1))))))) (Trealax.TREAL_10,(cHOL4.bool.~ @ ((cHOL4.realax.treal_eq @ cHOL4.realax.treal_1) @ cHOL4.realax.treal_0))) (Trealax.TREAL_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.treal_add @ X0) @ X1)) @ ((cHOL4.realax.treal_add @ X1) @ X0))))))) (Trealax.TREAL_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.treal_mul @ X0) @ X1)) @ ((cHOL4.realax.treal_mul @ X1) @ X0))))))) (Trealax.TREAL_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.treal_add @ X0) @ ((cHOL4.realax.treal_add @ X1) @ X2))) @ ((cHOL4.realax.treal_add @ ((cHOL4.realax.treal_add @ X0) @ X1)) @ X2))))))))) (Trealax.TREAL_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.treal_mul @ X0) @ ((cHOL4.realax.treal_mul @ X1) @ X2))) @ ((cHOL4.realax.treal_mul @ ((cHOL4.realax.treal_mul @ X0) @ X1)) @ X2))))))))) (Trealax.TREAL_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.treal_mul @ X0) @ ((cHOL4.realax.treal_add @ X1) @ X2))) @ ((cHOL4.realax.treal_add @ ((cHOL4.realax.treal_mul @ X0) @ X1)) @ ((cHOL4.realax.treal_mul @ X0) @ X2)))))))))) (Trealax.TREAL_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_add @ cHOL4.realax.treal_0) @ X0)) @ X0)))) (Trealax.TREAL_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_mul @ cHOL4.realax.treal_1) @ X0)) @ X0)))) (Trealax.TREAL_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_add @ (cHOL4.realax.treal_neg @ X0)) @ X0)) @ cHOL4.realax.treal_0)))) (Trealax.TREAL_INV_0,((cHOL4.realax.treal_eq @ (cHOL4.realax.treal_inv @ cHOL4.realax.treal_0)) @ cHOL4.realax.treal_0)) (Trealax.TREAL_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.realax.treal_eq @ X0) @ cHOL4.realax.treal_0))) @ ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_mul @ (cHOL4.realax.treal_inv @ X0)) @ X0)) @ cHOL4.realax.treal_1))))) (Trealax.TREAL_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.realax.treal_lt @ X0) @ X1)) @ ((cHOL4.realax.treal_lt @ X1) @ X0)))))))) (Trealax.TREAL_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.realax.treal_lt @ X0) @ X0))))) (Trealax.TREAL_LT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.treal_lt @ X0) @ X1)) @ ((cHOL4.realax.treal_lt @ X1) @ X2))) @ ((cHOL4.realax.treal_lt @ X0) @ X2))))))))) (Trealax.TREAL_LT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_lt @ X1) @ X2)) @ ((cHOL4.realax.treal_lt @ ((cHOL4.realax.treal_add @ X0) @ X1)) @ ((cHOL4.realax.treal_add @ X0) @ X2)))))))))) (Trealax.TREAL_LT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.treal_lt @ cHOL4.realax.treal_0) @ X0)) @ ((cHOL4.realax.treal_lt @ cHOL4.realax.treal_0) @ X1))) @ ((cHOL4.realax.treal_lt @ cHOL4.realax.treal_0) @ ((cHOL4.realax.treal_mul @ X0) @ X1)))))))) (Trealax.TREAL_BIJ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.hreal_of_treal @ (cHOL4.realax.treal_of_hreal @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.treal_lt @ cHOL4.realax.treal_0) @ X1)) @ ((cHOL4.realax.treal_eq @ (cHOL4.realax.treal_of_hreal @ (cHOL4.realax.hreal_of_treal @ X1))) @ X1)))))) (Trealax.TREAL_ISO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ ((cHOL4.realax.treal_lt @ (cHOL4.realax.treal_of_hreal @ X0)) @ (cHOL4.realax.treal_of_hreal @ X1)))))))) (Trealax.TREAL_BIJ_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.realax.hreal_of_treal @ X0)) @ (cHOL4.realax.hreal_of_treal @ X1)))))))) (Trealax.TREAL_NEG_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ (cHOL4.realax.treal_neg @ X0)) @ (cHOL4.realax.treal_neg @ X1)))))))) (Trealax.TREAL_ADD_WELLDEFR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_add @ X0) @ X2)) @ ((cHOL4.realax.treal_add @ X1) @ X2)))))))))) (Trealax.TREAL_ADD_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ X2) @ X3))) @ ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_add @ X0) @ X2)) @ ((cHOL4.realax.treal_add @ X1) @ X3)))))))))))) (Trealax.TREAL_MUL_WELLDEFR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_mul @ X0) @ X2)) @ ((cHOL4.realax.treal_mul @ X1) @ X2)))))))))) (Trealax.TREAL_MUL_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ X2) @ X3))) @ ((cHOL4.realax.treal_eq @ ((cHOL4.realax.treal_mul @ X0) @ X2)) @ ((cHOL4.realax.treal_mul @ X1) @ X3)))))))))))) (Trealax.TREAL_LT_WELLDEFR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.realax.treal_lt @ X0) @ X2)) @ ((cHOL4.realax.treal_lt @ X1) @ X2)))))))))) (Trealax.TREAL_LT_WELLDEFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.realax.treal_lt @ X0) @ X1)) @ ((cHOL4.realax.treal_lt @ X0) @ X2)))))))))) (Trealax.TREAL_LT_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.realax.treal_lt @ X0) @ X2)) @ ((cHOL4.realax.treal_lt @ X1) @ X3)))))))))))) (Trealax.TREAL_INV_WELLDEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.treal_eq @ X0) @ X1)) @ ((cHOL4.realax.treal_eq @ (cHOL4.realax.treal_inv @ X0)) @ (cHOL4.realax.treal_inv @ X1)))))))) (Trealax.real_ABS_REP_CLASS,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_ABS_CLASS @ (cHOL4.realax.real_REP_CLASS @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.realax.treal_eq @ X2) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.realax.treal_eq @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.realax.real_REP_CLASS @ (cHOL4.realax.real_ABS_CLASS @ X1))) @ X1)))))) (Trealax.real_QUOTIENT,(((cHOL4.quotient.QUOTIENT @ cHOL4.realax.treal_eq) @ cHOL4.realax.real_ABS) @ cHOL4.realax.real_REP)) (Trealax.REAL_ISO_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.hreal.hreal_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_of_hreal @ X0)) @ (cHOL4.realax.real_of_hreal @ X1)))))))) (Trealax.REAL_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ (cHOL4.realax.real_of_hreal @ X0))))) (Trealax.SUP_ALLPOS_LEMMA1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ X2))))) @ ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.realax.real_lt @ X1) @ X2))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ (cHOL4.realax.real_of_hreal @ X3))) @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.realax.real_of_hreal @ X3)))))))))))) (Trealax.SUP_ALLPOS_LEMMA2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (X0 @ (cHOL4.realax.real_of_hreal @ X1))) @ ((^[X2]: (X0 @ (cHOL4.realax.real_of_hreal @ X2))) @ X1))))))) (Trealax.SUP_ALLPOS_LEMMA3,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: ((^[X4]: (X0 @ (cHOL4.realax.real_of_hreal @ X4))) @ X3)))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((^[X4]: (X0 @ (cHOL4.realax.real_of_hreal @ X4))) @ X3)) @ ((cHOL4.hreal.hreal_lt @ X3) @ X5))))))))))) (Trealax.SUP_ALLPOS_LEMMA4,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.realax.real_lt @ X0) @ (cHOL4.realax.real_of_hreal @ X1)))))))) (Trealax.REAL_SUP_ALLPOS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X4) @ X1))))) @ ((cHOL4.realax.real_lt @ X4) @ X3)))))))))) (Trealax.REAL_10,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.realax.real_1) @ cHOL4.realax.real_0))) (Trealax.REAL_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X1) @ X0))))))) (Trealax.REAL_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X1) @ X0))))))) (Trealax.REAL_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2))))))))) (Trealax.REAL_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ X2))))))))) (Trealax.REAL_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Trealax.REAL_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ cHOL4.realax.real_0) @ X0)) @ X0)))) (Trealax.REAL_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ cHOL4.realax.real_1) @ X0)) @ X0)))) (Trealax.REAL_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.realax.real_neg @ X0)) @ X0)) @ cHOL4.realax.real_0)))) (Trealax.REAL_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.realax.real_0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.realax.inv @ X0)) @ X0)) @ cHOL4.realax.real_1))))) (Trealax.REAL_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Trealax.REAL_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.realax.real_lt @ X0) @ X0))))) (Trealax.REAL_LT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X2))))))))) (Trealax.REAL_LT_IADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ X2)))))))))) (Trealax.REAL_LT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ X0)) @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ X1))) @ ((cHOL4.realax.real_lt @ cHOL4.realax.real_0) @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Trealax.REAL_INV_0,((cHOL4.min.= @ (cHOL4.realax.inv @ cHOL4.realax.real_0)) @ cHOL4.realax.real_0)) (Treal.real_of_num,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ cHOL4.realax.real_0)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ cHOL4.realax.real_1)))))) (Treal.real_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.realax.real_neg @ X1)))))))) (Treal.real_lte,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.real_gt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_gt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0))))))) (Treal.real_ge,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_ge @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.real_div,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real./ @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.realax.inv @ X1)))))))) (Treal.abs,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ X0) @ (cHOL4.realax.real_neg @ X0)))))) (Treal.pow,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.real.pow @ X0) @ X1))))))))) (Treal.sup,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.sup @ X0)) @ (cHOL4.min.|at| @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.realax.real_lt @ X2) @ X3))))) @ ((cHOL4.realax.real_lt @ X2) @ X1)))))))))) (Treal.sum_tupled_primitive,((cHOL4.min.= @ cHOL4.real.sum_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.num.SUC @ X2))) @ X1)))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X1]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X3]: (^[X7]: (((cHOL4.arithmetic.num_CASE @ X7) @ (cHOL4.combin.I @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (^[X2]: (cHOL4.combin.I @ ((cHOL4.realax.real_add @ (X4 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X2))))))))))))))))) (Treal.sum_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ X0) @ X1)) @ (cHOL4.real.sum_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Treal.pos_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.pos @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.min_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.min @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ X0) @ X1)) @ X0) @ X1))))))) (Treal.max_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.max @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.real.real_lte @ X0) @ X1)) @ X1) @ X0))))))) (Treal.inf_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.inf @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.sup @ (^[X1]: (X0 @ (cHOL4.realax.real_neg @ X1))))))))) (Treal.NUM_FLOOR_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.NUM_FLOOR @ X0)) @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.real.real_gt @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))))) (Treal.NUM_CEILING_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.NUM_CEILING @ X0)) @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ X1)))))))) (Treal.REAL_0,((cHOL4.min.= @ cHOL4.realax.real_0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Treal.REAL_1,((cHOL4.min.= @ cHOL4.realax.real_1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.REAL_10,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) (Treal.REAL_ADD_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X1) @ X0))))))) (Treal.REAL_ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X1) @ X0))))))) (Treal.REAL_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2))))))))) (Treal.REAL_ADD_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ X0)))) (Treal.REAL_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.realax.real_neg @ X0)) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.REAL_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Treal.REAL_LT_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.REAL_LT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.realax.real_lt @ X0) @ X0))))) (Treal.REAL_LT_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X2))))))))) (Treal.REAL_LT_IADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ X2)))))))))) (Treal.REAL_SUP_ALLPOS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X4) @ X1))))) @ ((cHOL4.realax.real_lt @ X4) @ X3)))))))))) (Treal.REAL_MUL_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X1) @ X0))))))) (Treal.REAL_MUL_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X1) @ X0))))))) (Treal.REAL_MUL_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ X2))))))))) (Treal.REAL_MUL_LID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)))) (Treal.REAL_MUL_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.realax.inv @ X0)) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Treal.REAL_LT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Treal.REAL_INV_0,((cHOL4.min.= @ (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Treal.REAL_ADD_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X0)))) (Treal.REAL_ADD_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.REAL_MUL_RID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Treal.REAL_MUL_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.realax.inv @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Treal.REAL_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))))))))) (Treal.REAL_EQ_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Treal.REAL_EQ_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Treal.REAL_ADD_LID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal.REAL_ADD_RID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal.REAL_LNEG_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.realax.real_neg @ X1)))))))) (Treal.REAL_RNEG_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.realax.real_neg @ X0)))))))) (Treal.REAL_NEG_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1)))))))) (Treal.REAL_MUL_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.REAL_MUL_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.REAL_NEG_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X0)) @ X1))))))) (Treal.REAL_NEG_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.realax.real_neg @ X1)))))))) (Treal.REAL_NEGNEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.realax.real_neg @ X0))) @ X0)))) (Treal.REAL_NEG_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.realax.real_mul @ X0) @ X1))))))) (Treal.REAL_ENTIRE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Treal.REAL_LT_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ X2))) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) (Treal.REAL_LT_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X1))))))))) (Treal.REAL_NOT_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.realax.real_lt @ X0) @ X1))) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.REAL_LT_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.REAL_LT_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.REAL_NOT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ X1) @ X0))))))) (Treal.REAL_LE_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.REAL_LET_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0))))))) (Treal.REAL_LTE_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.REAL_LE_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ X0) @ X0)))) (Treal.REAL_LE_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Treal.REAL_LT_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))))) (Treal.REAL_LT_IMP_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ X1))))))) (Treal.REAL_LTE_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X2))))))))) (Treal.REAL_LET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X2))))))))) (Treal.REAL_LE_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.real.real_lte @ X0) @ X2))))))))) (Treal.REAL_LE_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Treal.REAL_LET_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X0)))))))) (Treal.REAL_LTE_ANTSYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.REAL_NEG_LT0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_NEG_GT0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.real_neg @ X0))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_NEG_LE0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_NEG_GE0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.real_neg @ X0))) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_LT_NEGTOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.real_neg @ X0))))))) (Treal.REAL_LE_NEGTOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.real_neg @ X0)))))) (Treal.REAL_LE_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Treal.REAL_LE_SQUARE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X0))))) (Treal.REAL_LE_01,((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.REAL_LT_01,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.REAL_LE_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ X2))) @ ((cHOL4.real.real_lte @ X1) @ X2))))))))) (Treal.REAL_LE_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))))) (Treal.REAL_LT_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X2) @ X3))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X3)))))))))))) (Treal.REAL_LE_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X2) @ X3))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X3)))))))))))) (Treal.REAL_LE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Treal.REAL_LT_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Treal.REAL_LT_ADDNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.realax.real_neg @ X2)))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X1) @ X2)) @ X0))))))))) (Treal.REAL_LT_ADDNEG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.realax.real_neg @ X1))) @ X2)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.realax.real_add @ X2) @ X1)))))))))) (Treal.REAL_LT_ADD1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.realax.real_add @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Treal.REAL_SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X1)) @ X0)))))) (Treal.REAL_SUB_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X1) @ ((cHOL4.real.real_sub @ X0) @ X1))) @ X0)))))) (Treal.REAL_SUB_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.REAL_SUB_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Treal.REAL_LE_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ X0) @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_LE_NEGL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ X0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_LE_NEGR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.realax.real_neg @ X0))) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_NEG_EQ0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_NEG_0,((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Treal.REAL_NEG_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ ((cHOL4.real.real_sub @ X0) @ X1))) @ ((cHOL4.real.real_sub @ X1) @ X0))))))) (Treal.REAL_SUB_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.real_sub @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ X1) @ X0))))))) (Treal.REAL_SUB_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.real_sub @ X0) @ X1))) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.REAL_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X0)) @ X1)))))) (Treal.REAL_EQ_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Treal.REAL_EQ_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Treal.REAL_SUB_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Treal.REAL_SUB_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))))))))) (Treal.REAL_NEG_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X0)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.realax.real_neg @ X1)))))))) (Treal.REAL_NEG_MINUS1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Treal.REAL_INV_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.realax.inv @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Treal.REAL_INVINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.realax.inv @ (cHOL4.realax.inv @ X0))) @ X0))))) (Treal.REAL_LT_IMP_NE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Treal.REAL_INV_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.inv @ X0)))))) (Treal.REAL_LT_LMUL_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))))))) (Treal.REAL_LT_RMUL_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)))))))) (Treal.REAL_LT_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2))) @ ((cHOL4.realax.real_lt @ X1) @ X2)))))))))) (Treal.REAL_LT_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X1)))))))))) (Treal.REAL_LT_RMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))))))))) (Treal.REAL_LT_LMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Treal.REAL_LINV_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.realax.inv @ X1)))))))) (Treal.REAL_RINV_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X1) @ (cHOL4.realax.inv @ X0)))))))) (Treal.REAL_INV_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.inv @ (cHOL4.realax.inv @ X0))) @ X0)))) (Treal.REAL_INV_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.inv @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_NEG_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.inv @ (cHOL4.realax.real_neg @ X0))))))) (Treal.REAL_INV_1OVER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.inv @ X0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Treal.REAL_LT_INV_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.inv @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_LE_INV_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.inv @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_LE_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.realax.inv @ X0)))))) (Treal.REAL_LE_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))))))) (Treal.REAL_LE_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))))) (Treal.REAL_LT_ADDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))))))) (Treal.REAL_LT_ADDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))))) (Treal.REAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Treal.REAL_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ X0))))) (Treal.REAL_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Treal.REAL_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Treal.REAL_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Treal.REAL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) (Treal.REAL_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Treal.REAL_INV1,((cHOL4.min.= @ (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.REAL_OVER1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Treal.REAL_DIV_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.real./ @ X0) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Treal.REAL_DIV_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.REAL_LT_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ X0)))))) (Treal.REAL_NZ_IMP_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ X0)))))) (Treal.REAL_LT_RDIV_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)))))))) (Treal.REAL_LT_RDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ X2)) @ ((cHOL4.real./ @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ X0) @ X1)))))))))) (Treal.REAL_LT_FRACTION_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))))))) (Treal.REAL_LT_MULTIPLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))))))) (Treal.REAL_LT_FRACTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X0))) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))))))) (Treal.REAL_LT_HALF1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_LT_HALF2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.REAL_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Treal.REAL_DIV_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.real./ @ X0) @ X1))) @ X0))))))) (Treal.REAL_DIV_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X0) @ X1)) @ X1)) @ X0))))))) (Treal.REAL_HALF_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)))) (Treal.REAL_DOWN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.REAL_DOWN2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X2) @ X0)) @ ((cHOL4.realax.real_lt @ X2) @ X1))))))))))) (Treal.REAL_SUB_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X0)) @ (cHOL4.realax.real_neg @ X1))))))) (Treal.REAL_LT_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real.real_sub @ X2) @ X1)))))))))) (Treal.REAL_LT_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.realax.real_add @ X2) @ X1)))))))))) (Treal.REAL_LT_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X2)) @ X1))))))))) (Treal.REAL_LE_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X0) @ X2)) @ X1))))))))) (Treal.REAL_LE_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.realax.real_add @ X2) @ X1)))))))))) (Treal.REAL_LT_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.realax.real_lt @ X1) @ X0))))))) (Treal.REAL_LE_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.REAL_ADD2_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X2) @ X3))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.real_sub @ X0) @ X2)) @ ((cHOL4.real.real_sub @ X1) @ X3)))))))))))) (Treal.REAL_SUB_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.realax.real_neg @ X0))))) (Treal.REAL_SUB_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X0)))) (Treal.REAL_LET_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X2) @ X3))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X3)))))))))))) (Treal.REAL_LTE_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X2) @ X3))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_add @ X0) @ X2)) @ ((cHOL4.realax.real_add @ X1) @ X3)))))))))))) (Treal.REAL_LET_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Treal.REAL_LTE_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Treal.REAL_LT_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ X2) @ X3))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X3)))))))))))) (Treal.REAL_LT_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.realax.inv @ X1)) @ (cHOL4.realax.inv @ X0)))))))) (Treal.REAL_SUB_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.realax.real_neg @ X0)) @ X1)) @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Treal.REAL_SUB_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.realax.real_add @ X0) @ X1))))))) (Treal.REAL_SUB_NEG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.real.real_sub @ X1) @ X0))))))) (Treal.REAL_SUB_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.real_sub @ X0) @ X1)) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.real.real_sub @ X0) @ X2))))))))) (Treal.REAL_EQ_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X0) @ X2)) @ X1))))))))) (Treal.REAL_EQ_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.realax.real_add @ X2) @ X1)))))))))) (Treal.REAL_INV_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.realax.inv @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.inv @ X0)) @ (cHOL4.realax.inv @ X1))))))))) (Treal.REAL_LE_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2))) @ ((cHOL4.real.real_lte @ X1) @ X2)))))))))) (Treal.REAL_LE_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.real.real_lte @ X0) @ X1)))))))))) (Treal.REAL_SUB_INV2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.realax.inv @ X0)) @ (cHOL4.realax.inv @ X1))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ X1) @ X0)) @ ((cHOL4.realax.real_mul @ X0) @ X1))))))))) (Treal.REAL_SUB_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ ((cHOL4.real.real_sub @ X0) @ X1))) @ X1)))))) (Treal.REAL_ADD_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ ((cHOL4.realax.real_add @ X0) @ X1))) @ (cHOL4.realax.real_neg @ X1))))))) (Treal.REAL_MEAN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X2)) @ ((cHOL4.realax.real_lt @ X2) @ X1)))))))))) (Treal.REAL_EQ_LMUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2))))))))))) (Treal.REAL_LE_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X2) @ X3))))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X3)))))))))))) (Treal.REAL_LE_LDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.realax.real_mul @ X2) @ X0)))) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ X1) @ X0)) @ X2))))))))) (Treal.REAL_LE_RDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ X2))) @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.real./ @ X2) @ X0)))))))))) (Treal.REAL_LT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ X0) @ X1)))))))) (Treal.REAL_LE_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ X0) @ X1)))))))) (Treal.REAL_LT_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Treal.REAL_LE_LMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Treal.REAL_LE_RMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ ((cHOL4.realax.real_mul @ X2) @ X0)))))))))) (Treal.REAL_EQ_IMP_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ X1))))))) (Treal.REAL_INV_LT1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.realax.inv @ X0)))))) (Treal.REAL_POS_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Treal.REAL_EQ_RMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Treal.REAL_EQ_LMUL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Treal.REAL_FACT_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_DIFFSQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.real.real_sub @ X0) @ X1))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X0) @ X0)) @ ((cHOL4.realax.real_mul @ X1) @ X1)))))))) (Treal.REAL_POASQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Treal.REAL_SUMSQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X0)) @ ((cHOL4.realax.real_mul @ X1) @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Treal.REAL_EQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Treal.REAL_DIV_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real./ @ X2) @ X1)) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X0) @ X1))))))))))) (Treal.REAL_MIDDLE1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Treal.REAL_MIDDLE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X1))))))) (Treal.ABS_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.ABS_0,((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Treal.ABS_1,((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.ABS_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.real.abs @ X0))))) (Treal.ABS_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1)))))))) (Treal.ABS_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X0))))) (Treal.ABS_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1)))))))) (Treal.ABS_LT_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X1)) @ X3))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ X2) @ X3)))))))))))) (Treal.ABS_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0)))))))) (Treal.ABS_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X0)))))) (Treal.ABS_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.inv @ (cHOL4.real.abs @ X0))))))) (Treal.ABS_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.real.abs @ X0))) @ (cHOL4.real.abs @ X0))))) (Treal.ABS_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.abs @ X0))))) (Treal.ABS_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.abs @ X0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Treal.ABS_N,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ X0))))) (Treal.ABS_BETWEEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ X0) @ X2)) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_add @ X0) @ X2))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0))) @ X2))))))))) (Treal.ABS_BOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1))) @ X2)) @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_add @ X0) @ X2)))))))))) (Treal.ABS_STILLNZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1))) @ (cHOL4.real.abs @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Treal.ABS_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X0)))))) (Treal.ABS_BETWEEN1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0))) @ ((cHOL4.real.real_sub @ X2) @ X0)))) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) (Treal.ABS_SIGN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1))) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))))) (Treal.ABS_SIGN2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1))) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal.ABS_DIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real./ @ X1) @ X0))) @ ((cHOL4.real./ @ (cHOL4.real.abs @ X1)) @ (cHOL4.real.abs @ X0))))))))) (Treal.ABS_CIRCLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X2)) @ ((cHOL4.real.real_sub @ (cHOL4.real.abs @ X1)) @ (cHOL4.real.abs @ X0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.realax.real_add @ X0) @ X2))) @ (cHOL4.real.abs @ X1)))))))))) (Treal.REAL_SUB_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1)))))))) (Treal.ABS_SUB_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1)))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X0) @ X1)))))))) (Treal.ABS_BETWEEN2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ X2) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X3) @ X2))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ X2) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ ((cHOL4.realax.real_lt @ X1) @ X3))))))))))) (Treal.ABS_BOUNDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ X1)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ X1)))))))) (Treal.POW_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Treal.POW_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Treal.POW_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ X0) @ X1))) @ ((cHOL4.real.pow @ (cHOL4.realax.inv @ X0)) @ X1)))))))) (Treal.POW_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.abs @ X0)) @ X1)) @ (cHOL4.real.abs @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Treal.POW_PLUS1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ X0))) @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X1)))))))) (Treal.POW_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X0) @ X1)) @ ((cHOL4.real.pow @ X0) @ X2)))))))))) (Treal.POW_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))) (Treal.POW_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.realax.real_mul @ X0) @ X0))))) (Treal.POW_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Treal.POW_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Treal.POW_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.pow @ X1) @ X0)) @ ((cHOL4.real.pow @ X2) @ X0)))))))))) (Treal.POW_M1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Treal.POW_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.pow @ ((cHOL4.realax.real_mul @ X1) @ X2)) @ X0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X1) @ X0)) @ ((cHOL4.real.pow @ X2) @ X0)))))))))) (Treal.REAL_LE_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Treal.ABS_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Treal.REAL_POW2_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.abs @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Treal.REAL_LE1_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Treal.REAL_LT1_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Treal.POW_POS_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ X0) @ (cHOL4.num.SUC @ X1))))))))) (Treal.POW_2_LE1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Treal.POW_2_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ X0)) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Treal.POW_MINUS1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Treal.POW_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.pow @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.real.pow @ X2) @ (cHOL4.num.SUC @ X0))))))))))) (Treal.REAL_POW_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Treal.POW_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X1) @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.real.pow @ X2) @ (cHOL4.num.SUC @ X0)))))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Treal.POW_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X1) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal.POW_ZERO_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X1) @ (cHOL4.num.SUC @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal.REAL_POW_LT2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2)))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.pow @ X1) @ X0)) @ ((cHOL4.real.pow @ X2) @ X0)))))))))) (Treal.REAL_POW_MONO_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.pow @ X2) @ X0)) @ ((cHOL4.real.pow @ X2) @ X1)))))))))) (Treal.REAL_POW_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.pow @ ((cHOL4.real.pow @ X0) @ X1)) @ X2)) @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.* @ X1) @ X2)))))))))) (Treal.REAL_SUP_SOMEPOS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2)))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X4) @ X1))))) @ ((cHOL4.realax.real_lt @ X4) @ X3)))))))))) (Treal.SUP_LEMMA1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((^[X4]: (X0 @ ((cHOL4.realax.real_add @ X4) @ X2))) @ X4)) @ ((cHOL4.realax.real_lt @ X3) @ X4))))) @ ((cHOL4.realax.real_lt @ X3) @ X1))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.realax.real_lt @ X3) @ X4))))) @ ((cHOL4.realax.real_lt @ X3) @ ((cHOL4.realax.real_add @ X1) @ X2))))))))))))) (Treal.SUP_LEMMA2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((^[X1]: (X0 @ ((cHOL4.realax.real_add @ X1) @ X2))) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))))))))) (Treal.SUP_LEMMA3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X2))))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((^[X3]: (X0 @ ((cHOL4.realax.real_add @ X3) @ X1))) @ X3)) @ ((cHOL4.realax.real_lt @ X3) @ X2)))))))))))) (Treal.REAL_SUP_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2)))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X4) @ X1))))) @ ((cHOL4.realax.real_lt @ X4) @ X3)))))))))) (Treal.REAL_SUP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X3) @ X1))))) @ ((cHOL4.realax.real_lt @ X3) @ (cHOL4.real.sup @ X0))))))))) (Treal.REAL_SUP_UBOUND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X3) @ (cHOL4.real.sup @ X0))))))))) (Treal.SETOK_LE_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))))) (Treal.REAL_SUP_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X3) @ X1))))) @ ((cHOL4.realax.real_lt @ X3) @ (cHOL4.real.sup @ X0))))))))) (Treal.REAL_SUP_UBOUND_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X3) @ (cHOL4.real.sup @ X0))))))))) (Treal.REAL_ARCH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X0)))))))))) (Treal.REAL_ARCH_LEAST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X0)) @ X1)) @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X2))) @ X0)))))))))))) (Treal.sum_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.num.0)) @ X2)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X2)) @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.num.SUC @ X3))) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6))))))))))) (Treal.sum,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.num.0)) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.num.SUC @ X2))) @ X1)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X1)) @ (X1 @ ((cHOL4.arithmetic.+ @ X0) @ X2)))))))))))) (Treal.sum_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.num.0)) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ X1)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ (X1 @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ X1)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ X1)) @ (X1 @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))))))))))))) (Treal.SUM_TWO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ X0))))))))) (Treal.SUM_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.real.real_sub @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)))))))))) (Treal.ABS_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X2]: (cHOL4.real.abs @ (X0 @ X2)))))))))))) (Treal.SUM_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X3) @ X2)))) @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ (X1 @ X4)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Treal.SUM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X3) @ X2)))) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X1 @ X4)))))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Treal.SUM_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X0)))))))))) (Treal.SUM_POS_GEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X2)))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))))))))) (Treal.SUM_ABS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X1]: (cHOL4.real.abs @ (X0 @ X1)))))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X1]: (cHOL4.real.abs @ (X0 @ X1)))))))))))) (Treal.SUM_ABS_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X2]: (cHOL4.real.abs @ (X0 @ X2)))))))))))) (Treal.SUM_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X2) @ X1)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))))) (Treal.SUM_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X3]: ((cHOL4.realax.real_add @ (X0 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Treal.SUM_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X3]: ((cHOL4.realax.real_mul @ X1) @ (X0 @ X3))))) @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)))))))))))) (Treal.SUM_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X1]: (cHOL4.realax.real_neg @ (X0 @ X1))))) @ (cHOL4.realax.real_neg @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))))))))) (Treal.SUM_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (^[X3]: ((cHOL4.real.real_sub @ (X0 @ X3)) @ (X1 @ X3))))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Treal.SUM_SUBST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X2) @ X3)))) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X1 @ X4)))))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Treal.SUM_NSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ X1)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ X2))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X3]: ((cHOL4.real.real_sub @ (X1 @ X3)) @ X2))))))))))) (Treal.SUM_BOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X2) @ X3)))) @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ X1))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X3)) @ X1)))))))))))) (Treal.SUM_GROUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X3]: ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ X3) @ X1)) @ X1)) @ X2)))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.arithmetic.* @ X0) @ X1))) @ X2))))))))) (Treal.SUM_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (X0 @ X1))))))) (Treal.SUM_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.realax.real_add @ (X0 @ X1)) @ (X0 @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Treal.SUM_OFFSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ (^[X3]: (X0 @ ((cHOL4.arithmetic.+ @ X3) @ X2))))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X2)) @ X0)))))))))) (Treal.SUM_REINDEX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X1) @ X2)) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ (^[X4]: (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))))))))))))) (Treal.SUM_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X2]: (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Treal.SUM_PERMUTE_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ (cHOL4.bool.?! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ X2)))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X0]: (X4 @ (X1 @ X0))))) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ X4)))))))))) (Treal.SUM_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (^[X1]: ((cHOL4.real.real_sub @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ X1))))) @ ((cHOL4.real.real_sub @ (X0 @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ (X0 @ X1)))))))))) (Treal.REAL_MUL_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.realax.real_neg @ X1))) @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Treal.REAL_MUL_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ X0)) @ X1)) @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Treal.real_lt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.real.real_lte @ X0) @ X1)))))))) (Treal.REAL_LE_LADD_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X0) @ X1)) @ ((cHOL4.realax.real_add @ X0) @ X2)))))))))) (Treal.REAL_LE_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ X0)) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ X0) @ X1)))))))) (Treal.REAL_LE_NEG2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.real.real_lte @ X1) @ X0))))))) (Treal.REAL_NEG_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.realax.real_neg @ X0))) @ X0)))) (Treal.REAL_LE_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.realax.real_neg @ X1))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Treal.REAL_POW_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.realax.inv @ X0)) @ X1)) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Treal.REAL_POW_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.pow @ ((cHOL4.real./ @ X0) @ X1)) @ X2)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ X0) @ X2)) @ ((cHOL4.real.pow @ X1) @ X2)))))))))) (Treal.REAL_POW_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.pow @ X0) @ X1)) @ ((cHOL4.real.pow @ X0) @ X2)))))))))) (Treal.REAL_LE_RDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ X1)))))))))) (Treal.REAL_LE_LDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ X0) @ X2)) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))))))))))) (Treal.REAL_LT_RDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ X1)))))))))) (Treal.REAL_LT_LDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ X2)) @ X1)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))))))))))) (Treal.REAL_EQ_RDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.real./ @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ X1)))))))))) (Treal.REAL_EQ_LDIV_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real./ @ X0) @ X2)) @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))))))))))) (Treal.REAL_OF_NUM_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ X0)) @ X1)) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.EXP @ X0) @ X1)))))))) (Treal.REAL_ADD_LDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))) (Treal.REAL_ADD_RDISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X2)) @ ((cHOL4.realax.real_mul @ X1) @ X2)))))))))) (Treal.REAL_OF_NUM_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) (Treal.REAL_OF_NUM_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))))))) (Treal.REAL_OF_NUM_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Treal.REAL_OF_NUM_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X0)))))) (Treal.REAL_OF_NUM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Treal.REAL_EQ_MUL_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Treal.REAL_ABS_0,((cHOL4.min.= @ (cHOL4.real.abs @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Treal.REAL_ABS_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1)))))))) (Treal.REAL_ABS_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.real.abs @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.abs @ X1)))))))) (Treal.REAL_ABS_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X0))))) (Treal.REAL_LE_EPSILON,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2)))))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))) (Treal.REAL_BIGNUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ X1))))))) (Treal.REAL_INV_LT_ANTIMONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.realax.inv @ X0)) @ (cHOL4.realax.inv @ X1))) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Treal.REAL_INV_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.inv @ X0)) @ (cHOL4.realax.inv @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Treal.REAL_DIV_RMUL_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ ((cHOL4.realax.real_mul @ X2) @ X0))) @ ((cHOL4.real./ @ X1) @ X2)))))))))) (Treal.REAL_DIV_LMUL_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ X2))) @ ((cHOL4.real./ @ X1) @ X2)))))))))) (Treal.REAL_DIV_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X2) @ X0))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ X1) @ X2)) @ X0))))))))) (Treal.REAL_ADD_RAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ X0) @ X1)) @ ((cHOL4.real./ @ X2) @ X3))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X3)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ X1) @ X3))))))))))))) (Treal.REAL_SUB_RAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.real./ @ X0) @ X1)) @ ((cHOL4.real./ @ X2) @ X3))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X0) @ X3)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ X1) @ X3))))))))))))) (Treal.REAL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ cHOL4.num.0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X1) @ X0)))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1))))))))) (Treal.REAL_POS_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.pos @ X0))))) (Treal.REAL_POS_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.real.pos @ X0)) @ X0))))) (Treal.REAL_POS_INFLATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.pos @ X0))))) (Treal.REAL_POS_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.pos @ X0)) @ (cHOL4.real.pos @ X1)))))))) (Treal.REAL_POS_EQ_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.pos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_POS_LE_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.pos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Treal.REAL_MIN_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.min @ X0) @ X0)) @ X0)))) (Treal.REAL_LE_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real.min @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ X2)))))))))) (Treal.REAL_MIN_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real.min @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.real.real_lte @ X1) @ X0)) @ ((cHOL4.real.real_lte @ X2) @ X0)))))))))) (Treal.REAL_MIN_LE1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ ((cHOL4.real.min @ X0) @ X1)) @ X0)))))) (Treal.REAL_MIN_LE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ ((cHOL4.real.min @ X0) @ X1)) @ X1)))))) (Treal.REAL_MIN_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.min @ X0) @ X1)) @ X0))) @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real.min @ X0) @ X1)) @ X1)))))))) (Treal.REAL_MIN_LE_LIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.min @ X1) @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X2))))))))))) (Treal.REAL_MIN_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.min @ ((cHOL4.realax.real_add @ X1) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ X0))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.min @ X1) @ X2)) @ X0))))))))) (Treal.REAL_MIN_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.min @ ((cHOL4.real.real_sub @ X1) @ X0)) @ ((cHOL4.real.real_sub @ X2) @ X0))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.min @ X1) @ X2)) @ X0))))))))) (Treal.REAL_IMP_MIN_LE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X2)) @ ((cHOL4.real.real_lte @ X1) @ X3))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.min @ X0) @ X1)) @ ((cHOL4.real.min @ X2) @ X3)))))))))))) (Treal.REAL_MAX_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.max @ X0) @ X0)) @ X0)))) (Treal.REAL_LE_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real.max @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ X2)))))))))) (Treal.REAL_LE_MAX1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real.max @ X0) @ X1))))))) (Treal.REAL_LE_MAX2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ X1) @ ((cHOL4.real.max @ X0) @ X1))))))) (Treal.REAL_MAX_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real.max @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X0)) @ ((cHOL4.real.real_lte @ X2) @ X0)))))))))) (Treal.REAL_MAX_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.max @ X0) @ X1)) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real.max @ X0) @ X1)) @ X0)))))))) (Treal.REAL_MAX_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.max @ X0) @ X1)) @ (cHOL4.realax.real_neg @ ((cHOL4.real.min @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))))))))) (Treal.REAL_MIN_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.min @ X0) @ X1)) @ (cHOL4.realax.real_neg @ ((cHOL4.real.max @ (cHOL4.realax.real_neg @ X0)) @ (cHOL4.realax.real_neg @ X1))))))))) (Treal.REAL_LIN_LE_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X2))) @ ((cHOL4.real.max @ X1) @ X2)))))))))) (Treal.REAL_MAX_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.max @ ((cHOL4.realax.real_add @ X1) @ X0)) @ ((cHOL4.realax.real_add @ X2) @ X0))) @ ((cHOL4.realax.real_add @ ((cHOL4.real.max @ X1) @ X2)) @ X0))))))))) (Treal.REAL_MAX_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.max @ ((cHOL4.real.real_sub @ X1) @ X0)) @ ((cHOL4.real.real_sub @ X2) @ X0))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.max @ X1) @ X2)) @ X0))))))))) (Treal.REAL_IMP_MAX_LE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X2)) @ ((cHOL4.real.real_lte @ X1) @ X3))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.max @ X0) @ X1)) @ ((cHOL4.real.max @ X2) @ X3)))))))))))) (Treal.REAL_SUP_EXISTS_UNIQUE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))))) @ (cHOL4.bool.?! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ ((cHOL4.realax.real_lt @ X4) @ X1))))) @ ((cHOL4.realax.real_lt @ X4) @ X3)))))))))) (Treal.REAL_SUP_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X2) @ X1)))))) @ ((cHOL4.min.= @ (cHOL4.real.sup @ X0)) @ X1))))))) (Treal.REAL_IMP_SUP_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X2) @ X1)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.sup @ X0)) @ X1))))))) (Treal.REAL_IMP_LE_SUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X2) @ X3))))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X1) @ X2))))))) @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.sup @ X0)))))))) (Treal.REAL_INF_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.real.inf @ X0)) @ X1))))))) (Treal.REAL_IMP_LE_INF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))) @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.inf @ X0)))))))) (Treal.REAL_IMP_INF_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X2) @ X3))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X1)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.inf @ X0)) @ X1))))))) (Treal.REAL_INF_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.inf @ X0)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.realax.real_lt @ X2) @ X1)))))))))) (Treal.REAL_INF_CLOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.realax.real_lt @ X2) @ ((cHOL4.realax.real_add @ (cHOL4.real.inf @ X0)) @ X1))))))))))) (Treal.SUP_EPSILON,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X2) @ X3))))))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.sup @ X0)) @ ((cHOL4.realax.real_add @ X2) @ X1))))))))))) (Treal.REAL_LE_SUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2)))))))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.sup @ X0))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X2))))) @ ((cHOL4.real.real_lte @ X1) @ X2))))))))))) (Treal.REAL_INF_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X2) @ X3)))))))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.inf @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((cHOL4.real.real_lte @ X2) @ X3))))) @ ((cHOL4.real.real_lte @ X2) @ X1))))))))))) (Treal.REAL_SUP_CONST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.sup @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ X0)))) (Treal.REAL_MUL_SUB2_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X1) @ X2)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real.real_sub @ X0) @ X1)) @ X2))) @ ((cHOL4.realax.real_mul @ X0) @ X2))))))))) (Treal.REAL_MUL_SUB1_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X2) @ X1)) @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.real.real_sub @ X0) @ X1)))) @ ((cHOL4.realax.real_mul @ X2) @ X0))))))))) (Treal.REAL_NEG_HALF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Treal.REAL_NEG_THIRD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ X0) @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Treal.REAL_DIV_DENOM_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X2) @ X0))) @ ((cHOL4.real./ @ X1) @ X2)))))))))) (Treal.REAL_DIV_DENOM_CANCEL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ X0) @ X1))))))) (Treal.REAL_DIV_DENOM_CANCEL3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.real./ @ X0) @ X1))))))) (Treal.REAL_DIV_INNER_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X0) @ X2))) @ ((cHOL4.real./ @ X1) @ X2)))))))))) (Treal.REAL_DIV_INNER_CANCEL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1))) @ ((cHOL4.real./ @ X0) @ X1))))))) (Treal.REAL_DIV_INNER_CANCEL3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))) @ ((cHOL4.real./ @ X0) @ X1))))))) (Treal.REAL_DIV_OUTER_CANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X0) @ X1)) @ ((cHOL4.real./ @ X2) @ X0))) @ ((cHOL4.real./ @ X2) @ X1)))))))))) (Treal.REAL_DIV_OUTER_CANCEL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ X1) @ X0))))))) (Treal.REAL_DIV_OUTER_CANCEL3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.real./ @ X1) @ X0))))))) (Treal.REAL_DIV_REFL2,((cHOL4.min.= @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.REAL_DIV_REFL3,((cHOL4.min.= @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Treal.REAL_HALF_BETWEEN,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Treal.REAL_THIRDS_BETWEEN,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Treal.REAL_LE_SUB_CANCEL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real.real_sub @ X0) @ X2)) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))))) (Treal.REAL_ADD_SUB_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_add @ X0) @ X1)) @ X1)) @ X0)))))) (Treal.INFINITE_REAL_UNIV,(cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) (Treal.add_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_add @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0))) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ X1) @ X0)) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X3) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ X1) @ X3)) @ X2)) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X1) @ X2)) @ ((cHOL4.realax.real_mul @ X3) @ X0))) @ ((cHOL4.realax.real_mul @ X0) @ X2))))))))))))))) (Treal.add_ratl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real./ @ X2) @ X1)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_add @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X2) @ X1))) @ X0)) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ X1)))))))))) (Treal.add_ratr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ X2) @ ((cHOL4.real./ @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_add @ X2) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0)))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X2) @ X0)) @ X1)) @ X0)))))))))) (Treal.add_ints,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X1) @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X1) @ X0)))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.- @ X0) @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))))))) (Treal.mult_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_mul @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0))) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X1) @ X0)) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X3) @ X2)))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X1) @ X3)) @ ((cHOL4.realax.real_mul @ X0) @ X2)))))))))))))) (Treal.mult_ratl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ X2) @ X1)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_mul @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X2) @ X1))) @ X0)) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X2) @ X0)) @ X1)))))))))) (Treal.mult_ratr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X2) @ ((cHOL4.real./ @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.realax.real_mul @ X2) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0)))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X2) @ X1)) @ X0)))))))))) (Treal.mult_ints,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.* @ X1) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.* @ X1) @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0)))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.* @ X1) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0)))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.* @ X1) @ X0))))))))))) (Treal.pow_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X1) @ cHOL4.num.0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ X3))) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ X3)) @ (cHOL4.arithmetic.NUMERAL @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ X3)))) @ (cHOL4.arithmetic.NUMERAL @ X2))) @ ((((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ (cHOL4.arithmetic.NUMERAL @ X2))) @ cHOL4.realax.real_neg) @ (^[X1]: X1)) @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ X3)) @ (cHOL4.arithmetic.NUMERAL @ X2)))))) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ ((cHOL4.real./ @ X1) @ X0)) @ X2)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ X1) @ X2)) @ ((cHOL4.real.pow @ X0) @ X2))))))))))))))))) (Treal.neg_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.realax.real_neg @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0)))) @ ((cHOL4.real./ @ (cHOL4.realax.real_neg @ X1)) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.real./ @ X1) @ (cHOL4.realax.real_neg @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0))) @ ((cHOL4.real./ @ (cHOL4.realax.real_neg @ X1)) @ X0))))))))) (Treal.eq_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0))) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.real./ @ X1) @ X0)) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X3) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X2)) @ ((cHOL4.min.= @ X1) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X1) @ X2)) @ ((cHOL4.realax.real_mul @ X0) @ X3))))))))))))))) (Treal.eq_ratl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real./ @ X2) @ X1)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X2) @ X1))) @ X0)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.realax.real_mul @ X1) @ X0))))))))))) (Treal.eq_ratr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.real./ @ X2) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X2) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X1) @ X0)) @ X2)))))))))) (Treal.eq_ints,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ ((cHOL4.min.= @ X0) @ X1)))))))))) (Treal.div_ratr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real./ @ X2) @ ((cHOL4.real./ @ X1) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.real./ @ X2) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0)))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X2) @ X0)) @ X1)))))))))) (Treal.div_ratl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.real./ @ X2) @ X1)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real./ @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X2) @ X1))) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ ((cHOL4.real./ @ X2) @ X1)) @ X0))) @ ((cHOL4.real./ @ X2) @ ((cHOL4.realax.real_mul @ X1) @ X0)))))))))))) (Treal.div_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.real./ @ X1) @ X0)) @ ((cHOL4.real./ @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.real./ @ ((cHOL4.real./ @ X1) @ X0)) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X3) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.real./ @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ X0))) @ ((cHOL4.real./ @ X3) @ X2))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ X1) @ X2)) @ ((cHOL4.realax.real_mul @ X0) @ X3)))))))))))))) (Treal.le_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ X2))) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.real.real_lte @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ X2))) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X3)) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X1)))))))))))))) (Treal.le_ratl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ X2))) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.real.real_lte @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X1))))))))))) (Treal.le_ratr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X0)) @ X1)))))))))) (Treal.le_int,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.arithmetic.<= @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ X1))) @ cHOL4.bool.T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ ((cHOL4.arithmetic.<= @ X1) @ X0)))))))))) (Treal.lt_rat,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ X2))) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.realax.real_lt @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X3)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ cHOL4.num.0)) @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ X2))) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X3)) @ X0)) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X1)))))))))))))) (Treal.lt_ratl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ X2))) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.realax.real_lt @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X1))))))))))) (Treal.lt_ratr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.marker.unint @ ((cHOL4.real./ @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X2)) @ X0)) @ X1)))))))))) (Treal.lt_int,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.prim_rec.< @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ X1)))) @ ((cHOL4.prim_rec.< @ X1) @ X0)))))))))) (Treal.NUM_FLOOR_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.real.NUM_FLOOR @ X0))) @ X0))))) (Treal.NUM_FLOOR_LE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.real.NUM_FLOOR @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ X1)) @ X0)))))))) (Treal.NUM_FLOOR_LET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.real.NUM_FLOOR @ X1)) @ X0)) @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Treal.NUM_FLOOR_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.real.NUM_FLOOR @ ((cHOL4.real./ @ X1) @ X0)))) @ X0)) @ X1))))))) (Treal.NUM_FLOOR_DIV_LOWERBOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ ((cHOL4.arithmetic.+ @ (cHOL4.real.NUM_FLOOR @ ((cHOL4.real./ @ X1) @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))))))) (Treal.NUM_FLOOR_EQNS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.real.NUM_FLOOR @ (cHOL4.real.real_of_num @ X0))) @ X0)) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.real.NUM_FLOOR @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.real.real_of_num @ X1)))) @ ((cHOL4.arithmetic.DIV @ X0) @ X1))))))))) (Treal.NUM_FLOOR_LOWER_BOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.real.NUM_FLOOR @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X1))))))) (Treal.NUM_FLOOR_upper_bound,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ X1)) @ X0)) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.real.NUM_FLOOR @ ((cHOL4.realax.real_add @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Treal.LE_NUM_CEILING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.real.NUM_CEILING @ X0)))))) (Treal.NUM_CEILING_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.real.NUM_CEILING @ X0)) @ X1))))))) (Trelation.transitive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X3))) @ ((X0 @ X1) @ X3)))))))))))) (Trelation.reflexive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.reflexive @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ X1))))))) (Trelation.irreflexive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.irreflexive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((X0 @ X1) @ X1)))))))) (Trelation.symmetric_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.symmetric @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1)))))))))) (Trelation.antisymmetric_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.antisymmetric @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Trelation.equivalence_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.equivalence @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.reflexive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.symmetric @ X0)) @ (cHOL4.relation.transitive @ X0))))))) (Trelation.total_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.total @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1)))))))))) (Trelation.trichotomous,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.trichotomous @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((X0 @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((X0 @ X2) @ X1)) @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Trelation.TC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X0 @ X4) @ X5)) @ ((X3 @ X4) @ X5))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X3 @ X4) @ X5)) @ ((X3 @ X5) @ X6))) @ ((X3 @ X4) @ X6)))))))))) @ ((X3 @ X1) @ X2)))))))))))) (Trelation.RTC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((X3 @ X4) @ X4)))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X4) @ X5)) @ ((X3 @ X5) @ X6))) @ ((X3 @ X4) @ X6)))))))))) @ ((X3 @ X1) @ X2)))))))))))) (Trelation.RC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ ((X0 @ X1) @ X2)))))))))) (Trelation.SC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.SC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1)))))))))) (Trelation.EQC_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.EQC @ X0)) @ (cHOL4.relation.RC @ (cHOL4.relation.TC @ (cHOL4.relation.SC @ X0))))))) (Trelation.WF_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ (cHOL4.bool.~ @ (X1 @ X4))))))))))))))) (Trelation.EMPTY_REL_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.EMPTY_REL @ X0) @ X1)) @ cHOL4.bool.F)))))) (Trelation.inv_image_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.inv_image @ X0) @ X1)) @ (^[X2]: (^[X3]: ((X0 @ (X1 @ X2)) @ (X1 @ X3)))))))))) (Trelation.RESTRICT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RESTRICT @ X0) @ X1) @ X2)) @ (^[X3]: (((cHOL4.bool.COND @ ((X1 @ X3) @ X2)) @ (X0 @ X3)) @ cHOL4.bool.ARB)))))))))) (Trelation.approx_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.relation.approx @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.min.= @ X3) @ (((cHOL4.relation.RESTRICT @ (^[X4]: ((X1 @ (((cHOL4.relation.RESTRICT @ X3) @ X0) @ X4)) @ X4))) @ X0) @ X2)))))))))))) (Trelation.the_fun_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.the_fun @ X0) @ X1) @ X2)) @ (cHOL4.min.|at| @ (^[X3]: ((((cHOL4.relation.approx @ X0) @ X1) @ X2) @ X3))))))))))) (Trelation.WFREC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.WFREC @ X0) @ X1)) @ (^[X2]: ((X1 @ (((cHOL4.relation.RESTRICT @ (((cHOL4.relation.the_fun @ (cHOL4.relation.TC @ X0)) @ (^[X3]: (^[X4]: ((X1 @ (((cHOL4.relation.RESTRICT @ X3) @ X0) @ X4)) @ X4)))) @ X2)) @ X0) @ X2)) @ X2)))))))) (Trelation.WFP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.WFP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X4) @ X3)) @ (X2 @ X4))))) @ (X2 @ X3))))) @ (X2 @ X1)))))))))) (Trelation.INDUCTIVE_INVARIANT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.INDUCTIVE_INVARIANT @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((X0 @ X5) @ X4)) @ ((X1 @ X5) @ (X3 @ X5)))))) @ ((X1 @ X4) @ ((X2 @ X3) @ X4))))))))))))))) (Trelation.INDUCTIVE_INVARIANT_ON_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.relation.INDUCTIVE_INVARIANT_ON @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X5)) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (X1 @ X6)) @ ((cHOL4.min.==> @ ((X0 @ X6) @ X5)) @ ((X2 @ X6) @ (X4 @ X6)))))))) @ ((X2 @ X5) @ ((X3 @ X4) @ X5))))))))))))))))) (Trelation.inv_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.inv @ X0) @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))))) (Trelation.INVOL_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.INVOL @ X0)) @ ((cHOL4.min.= @ ((cHOL4.combin.o @ X0) @ X0)) @ cHOL4.combin.I))))) (Trelation.IDEM_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.IDEM @ X0)) @ ((cHOL4.min.= @ ((cHOL4.combin.o @ X0) @ X0)) @ X0))))) (Trelation.O_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.relation.O @ X0) @ X1) @ X2) @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((X1 @ X2) @ X4)) @ ((X0 @ X4) @ X3)))))))))))))) (Trelation.RSUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.RSUBSET @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.RUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.relation.RUNION @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool.\/ @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.RINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.relation.RINTER @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.RCOMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RCOMPL @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ ((X0 @ X1) @ X2)))))))))) (Trelation.PreOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.PreOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.reflexive @ X0)) @ (cHOL4.relation.transitive @ X0)))))) (Trelation.Order,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.Order @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.antisymmetric @ X0)) @ (cHOL4.relation.transitive @ X0)))))) (Trelation.WeakOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WeakOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.reflexive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.antisymmetric @ X0)) @ (cHOL4.relation.transitive @ X0))))))) (Trelation.StrongOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.StrongOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.irreflexive @ X0)) @ (cHOL4.relation.transitive @ X0)))))) (Trelation.STRORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.STRORD @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Trelation.LinearOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.LinearOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.Order @ X0)) @ (cHOL4.relation.trichotomous @ X0)))))) (Trelation.StrongLinearOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.StrongLinearOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.StrongOrder @ X0)) @ (cHOL4.relation.trichotomous @ X0)))))) (Trelation.WeakLinearOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WeakLinearOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.WeakOrder @ X0)) @ (cHOL4.relation.trichotomous @ X0)))))) (Trelation.diag_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.diag @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.bool.IN @ X1) @ X0)))))))))) (Trelation.RDOM_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.RDOM @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((X0 @ X1) @ X2))))))))) (Trelation.RRANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.RRANGE @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((X0 @ X2) @ X1))))))))) (Trelation.RUNIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.RUNIV @ X0) @ X1)) @ cHOL4.bool.T)))))) (Trelation.diamond_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.diamond @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ X3))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((X0 @ X2) @ X4)) @ ((X0 @ X3) @ X4))))))))))))))) (Trelation.rcdiamond_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.rcdiamond @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ X3))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (((cHOL4.relation.RC @ X0) @ X2) @ X4)) @ (((cHOL4.relation.RC @ X0) @ X3) @ X4))))))))))))))) (Trelation.CR_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.CR @ X0)) @ (cHOL4.relation.diamond @ (cHOL4.relation.RTC @ X0)))))) (Trelation.WCR_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WCR @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X1) @ X3))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ X0) @ X2) @ X4)) @ (((cHOL4.relation.RTC @ X0) @ X3) @ X4))))))))))))))) (Trelation.SN_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.SN @ X0)) @ (cHOL4.relation.WF @ (cHOL4.relation.inv @ X0)))))) (Trelation.nf_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.nf @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((X0 @ X1) @ X2)))))))))) (Trelation.SC_SYMMETRIC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.symmetric @ (cHOL4.relation.SC @ X0))))) (Trelation.TC_TRANSITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.transitive @ (cHOL4.relation.TC @ X0))))) (Trelation.RTC_INDUCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((X1 @ X3) @ X4))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.TC_RULES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.TC @ X0) @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.TC @ X0) @ X2) @ X3))) @ (((cHOL4.relation.TC @ X0) @ X1) @ X3)))))))))))) (Trelation.RTC_RULES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((cHOL4.relation.RTC @ X0) @ X1) @ X1)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3))) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X3)))))))))))) (Trelation.RTC_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.relation.RTC @ X1) @ X0) @ X0)))))) (Trelation.RTC_SINGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2))))))))) (Trelation.RTC_STRONG_INDUCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ X0) @ X3) @ X4)) @ ((X1 @ X3) @ X4)))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.RTC_RTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3)) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X3)))))))))))) (Trelation.RTC_TRANSITIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.transitive @ (cHOL4.relation.RTC @ X0))))) (Trelation.transitive_RTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.transitive @ (cHOL4.relation.RTC @ X0))))) (Trelation.RTC_REFLEXIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.reflexive @ (cHOL4.relation.RTC @ X0))))) (Trelation.reflexive_RTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.reflexive @ (cHOL4.relation.RTC @ X0))))) (Trelation.RC_REFLEXIVE,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.reflexive @ (cHOL4.relation.RC @ X0))))) (Trelation.reflexive_RC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.reflexive @ (cHOL4.relation.RC @ X0))))) (Trelation.RC_lifts_monotonicities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((X1 @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RC @ X1) @ X2) @ X3)) @ (((cHOL4.relation.RC @ X1) @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.RC_MONOTONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((X2 @ X1) @ X0)) @ ((X3 @ X1) @ X0))))))) @ ((cHOL4.min.==> @ (((cHOL4.relation.RC @ X2) @ X1) @ X0)) @ (((cHOL4.relation.RC @ X3) @ X1) @ X0)))))))))))) (Trelation.RC_lifts_invariants,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((X0 @ X2) @ X3))) @ (X1 @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (((cHOL4.relation.RC @ X0) @ X2) @ X3))) @ (X1 @ X3)))))))))))) (Trelation.RC_lifts_equalities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RC @ X1) @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.SC_lifts_monotonicities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((X1 @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.SC @ X1) @ X2) @ X3)) @ (((cHOL4.relation.SC @ X1) @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.SC_lifts_equalities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.SC @ X1) @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.SC_MONOTONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((X2 @ X1) @ X0)) @ ((X3 @ X1) @ X0))))))) @ ((cHOL4.min.==> @ (((cHOL4.relation.SC @ X2) @ X1) @ X0)) @ (((cHOL4.relation.SC @ X3) @ X1) @ X0)))))))))))) (Trelation.symmetric_RC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.symmetric @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.symmetric @ X0))))) (Trelation.antisymmetric_RC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.antisymmetric @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.antisymmetric @ X0))))) (Trelation.transitive_RC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.transitive @ (cHOL4.relation.RC @ X0)))))) (Trelation.TC_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.TC @ X0) @ X1) @ X2))))))))) (Trelation.RTC_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2))))))))) (Trelation.RC_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.RC @ X0) @ X1) @ X2))))))))) (Trelation.RC_RTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.RC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2))))))))) (Trelation.TC_INDUCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X4))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X5) @ X6)) @ ((X1 @ X5) @ X6)))))))))))) (Trelation.TC_INDUCT_LEFT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((X1 @ X3) @ X4))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.TC_INDUCT_RIGHT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X0 @ X3) @ X4))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.TC_STRONG_INDUCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((X1 @ X3) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.relation.TC @ X0) @ X2) @ X3)) @ (((cHOL4.relation.TC @ X0) @ X3) @ X4))))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X5) @ X6)) @ ((X1 @ X5) @ X6)))))))))))) (Trelation.TC_STRONG_INDUCT_LEFT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((X1 @ X3) @ X4)) @ (((cHOL4.relation.TC @ X0) @ X3) @ X4)))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X5) @ X6)) @ ((X1 @ X5) @ X6)))))))))))) (Trelation.TC_STRONG_INDUCT_RIGHT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.relation.TC @ X0) @ X2) @ X3)) @ ((X0 @ X3) @ X4)))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X5) @ X6)) @ ((X1 @ X5) @ X6)))))))))))) (Trelation.TC_lifts_monotonicities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((X1 @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X1) @ X2) @ X3)) @ (((cHOL4.relation.TC @ X1) @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.TC_lifts_invariants,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((X0 @ X2) @ X3))) @ (X1 @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (((cHOL4.relation.TC @ X0) @ X2) @ X3))) @ (X1 @ X3)))))))))))) (Trelation.TC_lifts_equalities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X1) @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.TC_lifts_transitive_relations,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X1 @ X3) @ X4)) @ ((X2 @ (X0 @ X3)) @ (X0 @ X4)))))))) @ (cHOL4.relation.transitive @ X2))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X1) @ X3) @ X4)) @ ((X2 @ (X0 @ X3)) @ (X0 @ X4))))))))))))))) (Trelation.TC_implies_one_step,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X1) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X3))))))))))))) (Trelation.TC_RTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2))))))))) (Trelation.RTC_TC_RC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ (((cHOL4.relation.RC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)))))))))) (Trelation.TC_RC_EQNS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.RC @ (cHOL4.relation.TC @ X0))) @ (cHOL4.relation.RTC @ X0))) @ ((cHOL4.min.= @ (cHOL4.relation.TC @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.RTC @ X0)))))) (Trelation.RTC_INDUCT_RIGHT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X0 @ X3) @ X4))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.RTC_RULES_RIGHT1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (((cHOL4.relation.RTC @ X0) @ X1) @ X1)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ ((X0 @ X2) @ X3))) @ (((cHOL4.relation.RTC @ X0) @ X1) @ X3)))))))))))) (Trelation.RTC_STRONG_INDUCT_RIGHT1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3)) @ ((X0 @ X3) @ X4)))) @ ((X1 @ X2) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.EXTEND_RTC_TC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3))) @ (((cHOL4.relation.TC @ X0) @ X1) @ X3))))))))))) (Trelation.EXTEND_RTC_TC_EQN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X1) @ X3)) @ (((cHOL4.relation.RTC @ X0) @ X3) @ X2)))))))))))) (Trelation.reflexive_RC_identity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.reflexive @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.RC @ X0)) @ X0))))) (Trelation.symmetric_SC_identity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.symmetric @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.SC @ X0)) @ X0))))) (Trelation.transitive_TC_identity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.transitive @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.TC @ X0)) @ X0))))) (Trelation.RC_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.RC @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.RC @ X0))))) (Trelation.SC_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.SC @ (cHOL4.relation.SC @ X0))) @ (cHOL4.relation.SC @ X0))))) (Trelation.TC_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.TC @ (cHOL4.relation.TC @ X0))) @ (cHOL4.relation.TC @ X0))))) (Trelation.RC_MOVES_OUT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.SC @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.RC @ (cHOL4.relation.SC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.RC @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.RC @ X0))) @ ((cHOL4.min.= @ (cHOL4.relation.TC @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.RC @ (cHOL4.relation.TC @ X0)))))))) (Trelation.symmetric_TC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.symmetric @ X0)) @ (cHOL4.relation.symmetric @ (cHOL4.relation.TC @ X0)))))) (Trelation.reflexive_TC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.reflexive @ X0)) @ (cHOL4.relation.reflexive @ (cHOL4.relation.TC @ X0)))))) (Trelation.EQC_EQUIVALENCE,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.equivalence @ (cHOL4.relation.EQC @ X0))))) (Trelation.EQC_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.EQC @ (cHOL4.relation.EQC @ X0))) @ (cHOL4.relation.EQC @ X0))))) (Trelation.RTC_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.RTC @ (cHOL4.relation.RTC @ X0))) @ (cHOL4.relation.RTC @ X0))))) (Trelation.RTC_CASES1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X1) @ X3)) @ (((cHOL4.relation.RTC @ X0) @ X3) @ X2))))))))))))) (Trelation.RTC_CASES_TC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)))))))))) (Trelation.RTC_CASES2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ X0) @ X1) @ X3)) @ ((X0 @ X3) @ X2))))))))))))) (Trelation.RTC_CASES_RTC_TWICE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ X0) @ X1) @ X3)) @ (((cHOL4.relation.RTC @ X0) @ X3) @ X2)))))))))))) (Trelation.TC_CASES1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((X0 @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X1) @ X3)) @ (((cHOL4.relation.TC @ X0) @ X3) @ X2))))))))))))) (Trelation.TC_CASES2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X0) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ ((X0 @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.relation.TC @ X0) @ X1) @ X3)) @ ((X0 @ X3) @ X2))))))))))))) (Trelation.TC_MONOTONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((X2 @ X1) @ X0)) @ ((X3 @ X1) @ X0))))))) @ ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X2) @ X1) @ X0)) @ (((cHOL4.relation.TC @ X3) @ X1) @ X0)))))))))))) (Trelation.RTC_MONOTONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((X2 @ X1) @ X0)) @ ((X3 @ X1) @ X0))))))) @ ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X2) @ X1) @ X0)) @ (((cHOL4.relation.RTC @ X3) @ X1) @ X0)))))))))))) (Trelation.EQC_INDUCTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X2))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((X1 @ X3) @ X4))) @ ((X1 @ X2) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.EQC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.EQC_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.relation.EQC @ X0) @ X1) @ X1)))))) (Trelation.EQC_R,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (((cHOL4.relation.EQC @ X0) @ X1) @ X2))))))))) (Trelation.EQC_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.EQC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.EQC @ X0) @ X2) @ X1))))))))) (Trelation.EQC_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.relation.EQC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.EQC @ X0) @ X2) @ X3))) @ (((cHOL4.relation.EQC @ X0) @ X1) @ X3))))))))))) (Trelation.transitive_EQC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.transitive @ (cHOL4.relation.EQC @ X0))))) (Trelation.symmetric_EQC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.symmetric @ (cHOL4.relation.EQC @ X0))))) (Trelation.reflexive_EQC,(cHOL4.bool.! @ (^[X0]: (cHOL4.relation.reflexive @ (cHOL4.relation.EQC @ X0))))) (Trelation.EQC_MOVES_IN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.EQC @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.EQC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.EQC @ (cHOL4.relation.SC @ X0))) @ (cHOL4.relation.EQC @ X0))) @ ((cHOL4.min.= @ (cHOL4.relation.EQC @ (cHOL4.relation.TC @ X0))) @ (cHOL4.relation.EQC @ X0))))))) (Trelation.STRONG_EQC_INDUCTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X1 @ X2) @ X3))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((X1 @ X2) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.relation.EQC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3))) @ ((X1 @ X3) @ X2))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((X1 @ X3) @ X4)) @ ((cHOL4.bool./\ @ (((cHOL4.relation.EQC @ X0) @ X2) @ X3)) @ (((cHOL4.relation.EQC @ X0) @ X3) @ X4))))) @ ((X1 @ X2) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.EQC @ X0) @ X2) @ X3)) @ ((X1 @ X2) @ X3)))))))))))) (Trelation.ALT_equivalence,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.equivalence @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))))))))))) (Trelation.EQC_MONOTONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((X3 @ X1) @ X0)) @ ((X2 @ X1) @ X0))))))) @ ((cHOL4.min.==> @ (((cHOL4.relation.EQC @ X3) @ X1) @ X0)) @ (((cHOL4.relation.EQC @ X2) @ X1) @ X0)))))))))))) (Trelation.RTC_EQC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X0) @ X1) @ X2)) @ (((cHOL4.relation.EQC @ X0) @ X1) @ X2))))))))) (Trelation.RTC_lifts_monotonicities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((X1 @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X1) @ X2) @ X3)) @ (((cHOL4.relation.RTC @ X1) @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.RTC_lifts_reflexive_transitive_relations,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X1 @ X3) @ X4)) @ ((X2 @ (X0 @ X3)) @ (X0 @ X4)))))))) @ ((cHOL4.bool./\ @ (cHOL4.relation.reflexive @ X2)) @ (cHOL4.relation.transitive @ X2)))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X1) @ X3) @ X4)) @ ((X2 @ (X0 @ X3)) @ (X0 @ X4))))))))))))))) (Trelation.RTC_lifts_equalities,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.relation.RTC @ X1) @ X2) @ X3)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X3))))))))))))) (Trelation.RTC_lifts_invariants,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ ((X0 @ X2) @ X3))) @ (X1 @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (((cHOL4.relation.RTC @ X0) @ X2) @ X3))) @ (X1 @ X3)))))))))))) (Trelation.WF_INDUCTION_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X3) @ X2)) @ (X1 @ X3))))) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))))))))) (Trelation.INDUCTION_WF_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X3) @ X2)) @ (X1 @ X3))))) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2))))))) @ (cHOL4.relation.WF @ X0))))) (Trelation.WF_EQ_INDUCTION_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X3) @ X2)) @ (X1 @ X3))))) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (X1 @ X2)))))))))) (Trelation.WF_NOT_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Trelation.WF_irreflexive,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.irreflexive @ X0))))) (Trelation.WF_EMPTY_REL,(cHOL4.relation.WF @ cHOL4.relation.EMPTY_REL)) (Trelation.WF_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((X0 @ X2) @ X3)))))))) @ (cHOL4.relation.WF @ X1))))))) (Trelation.WF_TC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.WF @ (cHOL4.relation.TC @ X0)))))) (Trelation.WF_TC_EQN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WF @ (cHOL4.relation.TC @ X0))) @ (cHOL4.relation.WF @ X0))))) (Trelation.WF_noloops,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X2)) @ ((cHOL4.min.==> @ (((cHOL4.relation.TC @ X2) @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X0))))))))))) (Trelation.WF_antisymmetric,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.antisymmetric @ X0))))) (Trelation.WF_inv_image,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.relation.WF @ ((cHOL4.relation.inv_image @ X0) @ X1)))))))) (Trelation.RESTRICT_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X2) @ X3)) @ ((cHOL4.min.= @ ((((cHOL4.relation.RESTRICT @ X0) @ X1) @ X3) @ X2)) @ (X0 @ X2)))))))))))) (Trelation.WFREC_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.relation.WFREC @ X0) @ X1) @ X2)) @ ((X1 @ (((cHOL4.relation.RESTRICT @ ((cHOL4.relation.WFREC @ X0) @ X1)) @ X0) @ X2)) @ X2)))))))))) (Trelation.WFREC_COROLLARY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ ((cHOL4.relation.WFREC @ X1) @ X0))) @ ((cHOL4.min.==> @ (cHOL4.relation.WF @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ X3)) @ ((X0 @ (((cHOL4.relation.RESTRICT @ X2) @ X1) @ X3)) @ X3))))))))))))) (Trelation.WF_RECURSION_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.?! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ X3)) @ ((X1 @ (((cHOL4.relation.RESTRICT @ X2) @ X0) @ X3)) @ X3)))))))))))) (Trelation.WFP_RULES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X2) @ X1)) @ ((cHOL4.relation.WFP @ X0) @ X2))))) @ ((cHOL4.relation.WFP @ X0) @ X1))))))) (Trelation.WFP_INDUCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X3) @ X2)) @ (X1 @ X3))))) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.relation.WFP @ X0) @ X2)) @ (X1 @ X2)))))))))) (Trelation.WFP_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.WFP @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X2) @ X1)) @ ((cHOL4.relation.WFP @ X0) @ X2)))))))))) (Trelation.WFP_STRONG_INDUCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.relation.WFP @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X1 @ X3) @ X2)) @ (X0 @ X3)))))) @ (X0 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.relation.WFP @ X1) @ X2)) @ (X0 @ X2)))))))))) (Trelation.WF_EQ_WFP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.relation.WFP @ X0) @ X1))))))) (Trelation.INDUCTIVE_INVARIANT_WFREC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (((cHOL4.relation.INDUCTIVE_INVARIANT @ X0) @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((X1 @ X3) @ (((cHOL4.relation.WFREC @ X0) @ X2) @ X3)))))))))))) (Trelation.TFL_INDUCTIVE_INVARIANT_WFREC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.relation.WFREC @ X1) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X1)) @ (((cHOL4.relation.INDUCTIVE_INVARIANT @ X1) @ X2) @ X3)))) @ ((X2 @ X4) @ (X0 @ X4)))))))))))))) (Trelation.INDUCTIVE_INVARIANT_ON_WFREC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ ((((cHOL4.relation.INDUCTIVE_INVARIANT_ON @ X0) @ X3) @ X1) @ X2)) @ (X3 @ X4)))) @ ((X1 @ X4) @ (((cHOL4.relation.WFREC @ X0) @ X2) @ X4)))))))))))))) (Trelation.TFL_INDUCTIVE_INVARIANT_ON_WFREC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.relation.WFREC @ X1) @ X4))) @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X1)) @ ((cHOL4.bool./\ @ ((((cHOL4.relation.INDUCTIVE_INVARIANT_ON @ X1) @ X2) @ X3) @ X4)) @ (X2 @ X5))))) @ ((X3 @ X5) @ (X0 @ X5)))))))))))))))) (Trelation.inv_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.inv @ X0))) @ X0)))) (Trelation.inv_RC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.RC @ (cHOL4.relation.inv @ X0)))))) (Trelation.inv_SC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.SC @ X0))) @ (cHOL4.relation.SC @ X0))) @ ((cHOL4.min.= @ (cHOL4.relation.SC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.SC @ X0)))))) (Trelation.inv_TC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.TC @ X0))) @ (cHOL4.relation.TC @ (cHOL4.relation.inv @ X0)))))) (Trelation.inv_EQC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.EQC @ X0))) @ (cHOL4.relation.EQC @ X0))) @ ((cHOL4.min.= @ (cHOL4.relation.EQC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.EQC @ X0)))))) (Trelation.inv_MOVES_OUT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.inv @ X0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.SC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.SC @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.RC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.inv @ (cHOL4.relation.RC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.TC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.inv @ (cHOL4.relation.TC @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.relation.RTC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.inv @ (cHOL4.relation.RTC @ X0)))) @ ((cHOL4.min.= @ (cHOL4.relation.EQC @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.EQC @ X0)))))))))) (Trelation.reflexive_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.reflexive @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.reflexive @ X0))))) (Trelation.irreflexive_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.irreflexive @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.irreflexive @ X0))))) (Trelation.symmetric_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.symmetric @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.symmetric @ X0))))) (Trelation.antisymmetric_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.antisymmetric @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.antisymmetric @ X0))))) (Trelation.transitive_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.transitive @ (cHOL4.relation.inv @ X0))) @ (cHOL4.relation.transitive @ X0))))) (Trelation.symmetric_inv_identity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.symmetric @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.inv @ X0)) @ X0))))) (Trelation.equivalence_inv_identity,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.equivalence @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.inv @ X0)) @ X0))))) (Trelation.INVOL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.INVOL @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (X0 @ (X0 @ X1))) @ X1))))))) (Trelation.INVOL_ONE_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.INVOL @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ (X0 @ X2))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Trelation.INVOL_ONE_ENO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.INVOL @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ X2)) @ ((cHOL4.min.= @ X1) @ (X0 @ X2))))))))))) (Trelation.NOT_INVOL,(cHOL4.relation.INVOL @ cHOL4.bool.~)) (Trelation.IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.IDEM @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (X0 @ (X0 @ X1))) @ (X0 @ X1)))))))) (Trelation.inv_INVOL,(cHOL4.relation.INVOL @ cHOL4.relation.inv)) (Trelation.inv_O,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.relation.inv @ ((cHOL4.relation.O @ X0) @ X1))) @ ((cHOL4.relation.O @ (cHOL4.relation.inv @ X1)) @ (cHOL4.relation.inv @ X0)))))))) (Trelation.irreflexive_RSUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.irreflexive @ X1)) @ ((cHOL4.relation.RSUBSET @ X0) @ X1))) @ (cHOL4.relation.irreflexive @ X0))))))) (Trelation.RUNION_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.RUNION @ X1) @ X0)) @ ((cHOL4.relation.RUNION @ X0) @ X1))))))) (Trelation.RUNION_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.relation.RUNION @ X2) @ ((cHOL4.relation.RUNION @ X1) @ X0))) @ ((cHOL4.relation.RUNION @ ((cHOL4.relation.RUNION @ X2) @ X1)) @ X0))))))))) (Trelation.RINTER_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.relation.RINTER @ X1) @ X0)) @ ((cHOL4.relation.RINTER @ X0) @ X1))))))) (Trelation.RINTER_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.relation.RINTER @ X2) @ ((cHOL4.relation.RINTER @ X1) @ X0))) @ ((cHOL4.relation.RINTER @ ((cHOL4.relation.RINTER @ X2) @ X1)) @ X0))))))))) (Trelation.antisymmetric_RINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.relation.antisymmetric @ X1)) @ (cHOL4.relation.antisymmetric @ ((cHOL4.relation.RINTER @ X1) @ X0)))) @ ((cHOL4.min.==> @ (cHOL4.relation.antisymmetric @ X0)) @ (cHOL4.relation.antisymmetric @ ((cHOL4.relation.RINTER @ X1) @ X0))))))))) (Trelation.transitive_RINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X1)) @ (cHOL4.relation.transitive @ X0))) @ (cHOL4.relation.transitive @ ((cHOL4.relation.RINTER @ X1) @ X0)))))))) (Trelation.reflexive_Id_RSUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.reflexive @ X0)) @ ((cHOL4.relation.RSUBSET @ cHOL4.min.=) @ X0))))) (Trelation.symmetric_inv_RSUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.symmetric @ X0)) @ ((cHOL4.relation.RSUBSET @ (cHOL4.relation.inv @ X0)) @ X0))))) (Trelation.transitive_O_RSUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.transitive @ X0)) @ ((cHOL4.relation.RSUBSET @ ((cHOL4.relation.O @ X0) @ X0)) @ X0))))) (Trelation.irrefl_trans_implies_antisym,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.irreflexive @ X0)) @ (cHOL4.relation.transitive @ X0))) @ (cHOL4.relation.antisymmetric @ X0))))) (Trelation.StrongOrd_Ord,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.StrongOrder @ X0)) @ (cHOL4.relation.Order @ X0))))) (Trelation.WeakOrd_Ord,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WeakOrder @ X0)) @ (cHOL4.relation.Order @ X0))))) (Trelation.WeakOrder_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WeakOrder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))))))) (Trelation.RSUBSET_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.relation.RSUBSET @ X0) @ X1)) @ ((cHOL4.relation.RSUBSET @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trelation.RSUBSET_antisymmetric,(cHOL4.relation.antisymmetric @ cHOL4.relation.RSUBSET)) (Trelation.RSUBSET_WeakOrder,(cHOL4.relation.WeakOrder @ cHOL4.relation.RSUBSET)) (Trelation.EqIsBothRSUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.relation.RSUBSET @ X0) @ X1)) @ ((cHOL4.relation.RSUBSET @ X1) @ X0)))))))) (Trelation.STRORD_AND_NOT_Id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.STRORD @ X0)) @ ((cHOL4.relation.RINTER @ X0) @ (cHOL4.relation.RCOMPL @ cHOL4.min.=)))))) (Trelation.RC_OR_Id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.RC @ X0)) @ ((cHOL4.relation.RUNION @ X0) @ cHOL4.min.=))))) (Trelation.RC_Weak,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.Order @ X0)) @ (cHOL4.relation.WeakOrder @ (cHOL4.relation.RC @ X0)))))) (Trelation.STRORD_Strong,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.Order @ X0)) @ (cHOL4.relation.StrongOrder @ (cHOL4.relation.STRORD @ X0)))))) (Trelation.STRORD_RC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.StrongOrder @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.STRORD @ (cHOL4.relation.RC @ X0))) @ X0))))) (Trelation.RC_STRORD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.WeakOrder @ X0)) @ ((cHOL4.min.= @ (cHOL4.relation.RC @ (cHOL4.relation.STRORD @ X0))) @ X0))))) (Trelation.IDEM_STRORD,(cHOL4.relation.IDEM @ cHOL4.relation.STRORD)) (Trelation.IDEM_RC,(cHOL4.relation.IDEM @ cHOL4.relation.RC)) (Trelation.IDEM_SC,(cHOL4.relation.IDEM @ cHOL4.relation.SC)) (Trelation.IDEM_TC,(cHOL4.relation.IDEM @ cHOL4.relation.TC)) (Trelation.IDEM_RTC,(cHOL4.relation.IDEM @ cHOL4.relation.RTC)) (Trelation.trichotomous_STRORD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.trichotomous @ (cHOL4.relation.STRORD @ X0))) @ (cHOL4.relation.trichotomous @ X0))))) (Trelation.trichotomous_RC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.trichotomous @ (cHOL4.relation.RC @ X0))) @ (cHOL4.relation.trichotomous @ X0))))) (Trelation.WeakLinearOrder_dichotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.WeakLinearOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.WeakOrder @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.\/ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))))))) (Trelation.O_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.relation.O @ X2) @ ((cHOL4.relation.O @ X1) @ X0))) @ ((cHOL4.relation.O @ ((cHOL4.relation.O @ X2) @ X1)) @ X0))))))))) (Trelation.Id_O,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.relation.O @ cHOL4.min.=) @ X0)) @ X0)))) (Trelation.O_Id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.relation.O @ X0) @ cHOL4.min.=)) @ X0)))) (Trelation.O_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.relation.RSUBSET @ X3) @ X2)) @ ((cHOL4.relation.RSUBSET @ X1) @ X0))) @ ((cHOL4.relation.RSUBSET @ ((cHOL4.relation.O @ X3) @ X1)) @ ((cHOL4.relation.O @ X2) @ X0)))))))))))) (Trelation.inv_Id,((cHOL4.min.= @ (cHOL4.relation.inv @ cHOL4.min.=)) @ cHOL4.min.=)) (Trelation.inv_diag,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.inv @ (cHOL4.relation.diag @ X0))) @ (cHOL4.relation.diag @ X0))))) (Trelation.IN_RDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.relation.RDOM @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((X1 @ X0) @ X2))))))))) (Trelation.IN_RRANGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.relation.RRANGE @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((X1 @ X2) @ X0))))))))) (Trelation.RUNIV_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.relation.RSUBSET @ cHOL4.relation.RUNIV) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.relation.RUNIV))) @ ((cHOL4.relation.RSUBSET @ X0) @ cHOL4.relation.RUNIV))))) (Trelation.REMPTY_SUBSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.relation.RSUBSET @ cHOL4.relation.EMPTY_REL) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.relation.RSUBSET @ X0) @ cHOL4.relation.EMPTY_REL)) @ ((cHOL4.min.= @ X0) @ cHOL4.relation.EMPTY_REL)))))) (Trelation.rcdiamond_diamond,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.rcdiamond @ X0)) @ (cHOL4.relation.diamond @ (cHOL4.relation.RC @ X0)))))) (Trelation.diamond_RC_diamond,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.diamond @ X0)) @ (cHOL4.relation.diamond @ (cHOL4.relation.RC @ X0)))))) (Trelation.diamond_TC_diamond,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.diamond @ X0)) @ (cHOL4.relation.diamond @ (cHOL4.relation.TC @ X0)))))) (Trelation.establish_CR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.relation.rcdiamond @ X0)) @ (cHOL4.relation.CR @ X0))) @ ((cHOL4.min.==> @ (cHOL4.relation.diamond @ X0)) @ (cHOL4.relation.CR @ X0)))))) (Trelation.Newmans_lemma,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WCR @ X0)) @ (cHOL4.relation.SN @ X0))) @ (cHOL4.relation.CR @ X0))))) (Tres_quan.RES_SELECT_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_SELECT @ cHOL4.pred_set.UNIV) @ X0)) @ (cHOL4.min.|at| @ X0))))) (Tres_quan.RES_SELECT_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_SELECT @ cHOL4.pred_set.EMPTY) @ X0)) @ (cHOL4.min.|at| @ (^[X1]: cHOL4.bool.F)))))) (Tres_quan.RES_EXISTS_UNIQUE_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ X0) @ X1)) @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((cHOL4.min.==> @ (X1 @ X3)) @ ((cHOL4.min.= @ X3) @ X2))))))))))))) (Tres_quan.RES_EXISTS_UNIQUE_NULL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ X0) @ (^[X2]: X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))))) @ X1))))))) (Tres_quan.RES_EXISTS_UNIQUE_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ cHOL4.pred_set.UNIV) @ X0)) @ (cHOL4.bool.?! @ X0))))) (Tres_quan.RES_EXISTS_UNIQUE_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ cHOL4.pred_set.EMPTY) @ X0))))) (Tres_quan.RES_EXISTS_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.bool.RES_SELECT @ X0) @ X1)) @ X0)) @ (X1 @ ((cHOL4.bool.RES_SELECT @ X0) @ X1))))))))) (Tres_quan.RES_EXISTS_NULL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X2]: X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ X1))))))) (Tres_quan.RES_EXISTS_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ cHOL4.pred_set.UNIV) @ X0)) @ (cHOL4.bool.? @ X0))))) (Tres_quan.RES_EXISTS_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.bool.RES_EXISTS @ cHOL4.pred_set.EMPTY) @ X0))))) (Tres_quan.RES_EXISTS_REORDER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X3]: ((cHOL4.bool.RES_EXISTS @ X1) @ (^[X4]: ((X2 @ X3) @ X4)))))) @ ((cHOL4.bool.RES_EXISTS @ X1) @ (^[X4]: ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X3]: ((X2 @ X3) @ X4))))))))))))) (Tres_quan.RES_EXISTS_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ (cHOL4.min.= @ X1)) @ (^[X2]: (X0 @ X2)))) @ (X0 @ X1))))))) (Tres_quan.RES_DISJ_EXISTS_DIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ (^[X3]: ((cHOL4.bool.\/ @ (X0 @ X3)) @ (X1 @ X3)))) @ (^[X3]: (X2 @ X3)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X3]: (X2 @ X3)))) @ ((cHOL4.bool.RES_EXISTS @ X1) @ (^[X3]: (X2 @ X3)))))))))))) (Tres_quan.RES_EXISTS_DISJ_DIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X2 @ X3))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X3]: (X1 @ X3)))) @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X3]: (X2 @ X3)))))))))))) (Tres_quan.RES_FORALL_NULL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X2]: X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ X1))))))) (Tres_quan.RES_FORALL_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ cHOL4.pred_set.UNIV) @ X0)) @ (cHOL4.bool.! @ X0))))) (Tres_quan.RES_FORALL_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.RES_FORALL @ cHOL4.pred_set.EMPTY) @ X0)))) (Tres_quan.RES_FORALL_REORDER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((cHOL4.bool.RES_FORALL @ X1) @ (^[X4]: ((X2 @ X3) @ X4)))))) @ ((cHOL4.bool.RES_FORALL @ X1) @ (^[X4]: ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((X2 @ X3) @ X4))))))))))))) (Tres_quan.RES_FORALL_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((X1 @ X3) @ X2)))))) @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((X1 @ X3) @ X2))))))))))))) (Tres_quan.RES_FORALL_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ (cHOL4.min.= @ X1)) @ (^[X2]: (X0 @ X2)))) @ (X0 @ X1))))))) (Tres_quan.RES_FORALL_DISJ_DIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ (^[X3]: ((cHOL4.bool.\/ @ (X0 @ X3)) @ (X1 @ X3)))) @ (^[X4]: (X2 @ X4)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X4]: (X2 @ X4)))) @ ((cHOL4.bool.RES_FORALL @ X1) @ (^[X4]: (X2 @ X4)))))))))))) (Tres_quan.RES_FORALL_CONJ_DIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ (X2 @ X3))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: (X1 @ X3)))) @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: (X2 @ X3)))))))))))) (Tres_quan.RES_FORALL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_FORALL @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))))) (Tres_quan.RES_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))))) (Tres_quan.RES_EXISTS_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_EXISTS_UNIQUE @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.RES_EXISTS @ X0) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.bool.RES_FORALL @ X0) @ (^[X2]: ((cHOL4.bool.RES_FORALL @ X0) @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (X1 @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))))))))) (Tres_quan.RES_SELECT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_SELECT @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (X1 @ X2)))))))))) (Tres_quan.RES_ABSTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.bool.RES_ABSTRACT @ X0) @ X1) @ X2)) @ (X1 @ X2)))))))))) (Tres_quan.RES_ABSTRACT_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X1)) @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X2)))))))))) (Tres_quan.RES_ABSTRACT_IDEMPOT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X1))) @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X1))))))) (Tres_quan.RES_ABSTRACT_EQUAL_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X1)) @ ((cHOL4.bool.RES_ABSTRACT @ X0) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3))))))))))))) (Trich_list.ELL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ cHOL4.num.0) @ X0)) @ (cHOL4.list.LAST @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.rich_list.ELL @ X1) @ (cHOL4.list.FRONT @ X0))))))))) (Trich_list.REPLICATE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.REPLICATE @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.REPLICATE @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.rich_list.REPLICATE @ X1) @ X0))))))))) (Trich_list.SCANL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SCANL @ X0) @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.rich_list.SCANL @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ X1) @ (((cHOL4.rich_list.SCANL @ X0) @ ((X0 @ X1) @ X2)) @ X3))))))))))))) (Trich_list.SCANR,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SCANR @ X0) @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.rich_list.SCANR @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.list.CONS @ ((X0 @ X2) @ (cHOL4.list.HD @ (((cHOL4.rich_list.SCANR @ X0) @ X1) @ X3)))) @ (((cHOL4.rich_list.SCANR @ X0) @ X1) @ X3))))))))))))) (Trich_list.SPLITP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.SPLITP @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.SPLITP @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.bool.COND @ (X0 @ X1)) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X1) @ (cHOL4.pair.FST @ ((cHOL4.rich_list.SPLITP @ X0) @ X2)))) @ (cHOL4.pair.SND @ ((cHOL4.rich_list.SPLITP @ X0) @ X2))))))))))))) (Trich_list.SPLITP_AUX_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SPLITP_AUX @ X0) @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.rich_list.SPLITP_AUX @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.bool.COND @ (X1 @ X2)) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.rich_list.SPLITP_AUX @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ X1) @ X3))))))))))))) (Trich_list.SPLITL_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.SPLITL @ X0)) @ (cHOL4.rich_list.SPLITP @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)))))) (Trich_list.SPLITR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.SPLITR @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.pair.|comma| @ (cHOL4.list.REVERSE @ X3)) @ (cHOL4.list.REVERSE @ X2)))))) @ ((cHOL4.rich_list.SPLITP @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ (cHOL4.list.REVERSE @ X1))))))))) (Trich_list.PREFIX_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.PREFIX @ X0) @ X1)) @ (cHOL4.pair.FST @ ((cHOL4.rich_list.SPLITP @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1)))))))) (Trich_list.SUFFIX_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.SUFFIX @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ X3)) @ ((cHOL4.list.SNOC @ X3) @ X2)) @ cHOL4.list.NIL)))) @ cHOL4.list.NIL) @ X1))))))) (Trich_list.AND_EL_DEF,((cHOL4.min.= @ cHOL4.rich_list.AND_EL) @ (cHOL4.list.EVERY @ cHOL4.combin.I))) (Trich_list.OR_EL_DEF,((cHOL4.min.= @ cHOL4.rich_list.OR_EL) @ (cHOL4.list.EXISTS @ cHOL4.combin.I))) (Trich_list.UNZIP_FST_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.UNZIP_FST @ X0)) @ (cHOL4.pair.FST @ (cHOL4.list.UNZIP @ X0)))))) (Trich_list.UNZIP_SND_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.UNZIP_SND @ X0)) @ (cHOL4.pair.SND @ (cHOL4.list.UNZIP @ X0)))))) (Trich_list.LIST_ELEM_COUNT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X0) @ X1)) @ (cHOL4.list.LENGTH @ ((cHOL4.list.FILTER @ (^[X2]: ((cHOL4.min.= @ X2) @ X0))) @ X1)))))))) (Trich_list.COUNT_LIST_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ cHOL4.num.0)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.list.CONS @ cHOL4.num.0) @ ((cHOL4.list.MAP @ cHOL4.num.SUC) @ (cHOL4.rich_list.COUNT_LIST @ X0)))))))) (Trich_list.COUNT_LIST_AUX_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.COUNT_LIST_AUX @ cHOL4.num.0) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.COUNT_LIST_AUX @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.rich_list.COUNT_LIST_AUX @ X1) @ ((cHOL4.list.CONS @ X1) @ X0))))))))) (Trich_list.LASTN,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.list.SNOC @ X2) @ X0))) @ ((cHOL4.list.SNOC @ X2) @ ((cHOL4.rich_list.LASTN @ X1) @ X0))))))))))) (Trich_list.BUTLASTN,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ cHOL4.num.0) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.list.SNOC @ X2) @ X0))) @ ((cHOL4.rich_list.BUTLASTN @ X1) @ X0)))))))))) (Trich_list.IS_SUBLIST,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUBLIST @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUBLIST @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X0))) @ cHOL4.bool.F)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUBLIST @ ((cHOL4.list.CONS @ X2) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X5))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X4)) @ ((cHOL4.list.isPREFIX @ X5) @ X3))) @ ((cHOL4.rich_list.IS_SUBLIST @ X3) @ ((cHOL4.list.CONS @ X4) @ X5))))))))))))))) (Trich_list.SEG,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ cHOL4.num.0) @ X0) @ X1)) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.num.SUC @ X2)) @ cHOL4.num.0) @ ((cHOL4.list.CONS @ X3) @ X1))) @ ((cHOL4.list.CONS @ X3) @ (((cHOL4.rich_list.SEG @ X2) @ cHOL4.num.0) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.num.SUC @ X2)) @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.list.CONS @ X3) @ X1))) @ (((cHOL4.rich_list.SEG @ (cHOL4.num.SUC @ X2)) @ X0) @ X1))))))))))))) (Trich_list.IS_SUFFIX,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUFFIX @ cHOL4.list.NIL) @ ((cHOL4.list.SNOC @ X1) @ X0))) @ cHOL4.bool.F)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUFFIX @ ((cHOL4.list.SNOC @ X2) @ X3)) @ ((cHOL4.list.SNOC @ X4) @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X4)) @ ((cHOL4.rich_list.IS_SUFFIX @ X3) @ X5)))))))))))))) (Trich_list.DROP_LENGTH_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.list.LENGTH @ X0)) @ X0)) @ cHOL4.list.NIL)))) (Trich_list.TAKE_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X2) @ ((cHOL4.list.TAKE @ X0) @ X1))) @ ((cHOL4.list.TAKE @ X2) @ X1))))))))))) (Trich_list.EVERY_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.rich_list.BUTLASTN @ X2) @ X1))))))))))) (Trich_list.EVERY_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.rich_list.LASTN @ X2) @ X1))))))))))) (Trich_list.BUTLASTN_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ ((cHOL4.list.MAP @ X2) @ X1))) @ ((cHOL4.list.MAP @ X2) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1))))))))))) (Trich_list.LASTN_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ ((cHOL4.list.MAP @ X2) @ X1))) @ ((cHOL4.list.MAP @ X2) @ ((cHOL4.rich_list.LASTN @ X0) @ X1))))))))))) (Trich_list.LASTN_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X1) @ ((cHOL4.list.APPEND @ X2) @ X0))) @ ((cHOL4.list.APPEND @ ((cHOL4.rich_list.LASTN @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X2)) @ X0)))))))))) (Trich_list.LASTN_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ ((cHOL4.list.APPEND @ X2) @ X1))) @ ((cHOL4.rich_list.LASTN @ X0) @ X1)))))))))) (Trich_list.BUTLASTN_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X1) @ ((cHOL4.list.APPEND @ X2) @ X0))) @ ((cHOL4.rich_list.BUTLASTN @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X2)))))))))) (Trich_list.BUTLASTN_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (cHOL4.list.FRONT @ X0)))))) (Trich_list.LASTN_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.list.CONS @ (cHOL4.list.LAST @ X0)) @ cHOL4.list.NIL)))))) (Trich_list.BUTLASTN_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ X1) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ ((cHOL4.rich_list.LASTN @ X1) @ X2))) @ ((cHOL4.rich_list.LASTN @ ((cHOL4.arithmetic.- @ X1) @ X0)) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X2))))))))))) (Trich_list.LASTN_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ ((cHOL4.rich_list.BUTLASTN @ X1) @ X2))) @ ((cHOL4.rich_list.BUTLASTN @ X1) @ ((cHOL4.rich_list.LASTN @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2))))))))))) (Trich_list.BUTLASTN_LASTN_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ ((cHOL4.rich_list.LASTN @ X0) @ X1))) @ cHOL4.list.NIL))))))) (Trich_list.LAST_LASTN_LAST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.min.= @ (cHOL4.list.LAST @ ((cHOL4.rich_list.LASTN @ X0) @ X1))) @ (cHOL4.list.LAST @ X1))))))))) (Trich_list.BUTLASTN_LENGTH_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))) (Trich_list.BUTLASTN_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1))))))))))) (Trich_list.LASTN_LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ X0)))))) (Trich_list.BUTLASTN_LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ X1)))))) (Trich_list.BUTLASTN_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X2))))))))))) (Trich_list.APPEND_TAKE_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.TAKE @ X1) @ X2)) @ ((cHOL4.rich_list.LASTN @ X0) @ X2))) @ X2))))))))) (Trich_list.APPEND_BUTLASTN_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1)) @ ((cHOL4.rich_list.LASTN @ X0) @ X1))) @ X1))))))) (Trich_list.BUTLASTN_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X1) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X2))) @ ((cHOL4.rich_list.BUTLASTN @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X2)))))))))) (Trich_list.LENGTH_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)))))))) (Trich_list.BUTLASTN_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ (cHOL4.list.FRONT @ X1))) @ (cHOL4.list.FRONT @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1))))))))) (Trich_list.BUTLASTN_SUC_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ (cHOL4.list.FRONT @ X1))))))))) (Trich_list.ELL_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ cHOL4.num.0) @ X0)) @ (cHOL4.list.LAST @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.rich_list.ELL @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.list.FRONT @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.rich_list.ELL @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.list.FRONT @ X0)))))))))) (Trich_list.REPLICATE_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.REPLICATE @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.REPLICATE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.rich_list.REPLICATE @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.REPLICATE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.rich_list.REPLICATE @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)))))))))) (Trich_list.COUNT_LIST_AUX_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.COUNT_LIST_AUX @ cHOL4.num.0) @ X0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.COUNT_LIST_AUX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.rich_list.COUNT_LIST_AUX @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.list.CONS @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.COUNT_LIST_AUX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.rich_list.COUNT_LIST_AUX @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.list.CONS @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)))))))))) (Trich_list.TAKE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ cHOL4.num.0) @ X0)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.list.CONS @ X2) @ X0))) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.TAKE @ X1) @ X0))))))))))) (Trich_list.DROP,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ cHOL4.num.0) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.list.CONS @ X2) @ X0))) @ ((cHOL4.list.DROP @ X1) @ X0)))))))))) (Trich_list.NOT_NULL_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (cHOL4.list.NULL @ ((cHOL4.list.SNOC @ X0) @ X1)))))))) (Trich_list.LENGTH_MAP2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.list.MAP2 @ X2) @ X0) @ X1))) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.list.MAP2 @ X2) @ X0) @ X1))) @ (cHOL4.list.LENGTH @ X1))))))))))) (Trich_list.LENGTH_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))))))) (Trich_list.LENGTH_NOT_NULL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.list.LENGTH @ X0))) @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0)))))) (Trich_list.NOT_NIL_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.list.NIL) @ ((cHOL4.list.SNOC @ X0) @ X1)))))))) (Trich_list.NOT_SNOC_NIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ X1)) @ cHOL4.list.NIL))))))) (Trich_list.SNOC_EQ_LENGTH_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ X1)) @ ((cHOL4.list.SNOC @ X2) @ X3))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X3)))))))))))) (Trich_list.SNOC_REVERSE_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ X1)) @ (cHOL4.list.REVERSE @ ((cHOL4.list.CONS @ X0) @ (cHOL4.list.REVERSE @ X1))))))))) (Trich_list.FOLDR_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.SNOC @ X2) @ X3))) @ (((cHOL4.list.FOLDR @ X0) @ ((X0 @ X2) @ X1)) @ X3))))))))))) (Trich_list.FOLDR_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.MONOID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ X2)) @ (((cHOL4.list.FOLDL @ X0) @ X1) @ X2)))))))))) (Trich_list.LENGTH_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (((cHOL4.list.FOLDR @ (^[X1]: (^[X2]: (cHOL4.num.SUC @ X2)))) @ cHOL4.num.0) @ X0))))) (Trich_list.LENGTH_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (((cHOL4.list.FOLDL @ (^[X1]: (^[X2]: (cHOL4.num.SUC @ X1)))) @ cHOL4.num.0) @ X0))))) (Trich_list.MAP_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ (^[X2]: (^[X3]: ((cHOL4.list.CONS @ (X0 @ X2)) @ X3)))) @ cHOL4.list.NIL) @ X1))))))) (Trich_list.MAP_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.list.SNOC @ (X0 @ X3)) @ X2)))) @ cHOL4.list.NIL) @ X1))))))) (Trich_list.FILTER_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ X2)) @ ((cHOL4.list.CONS @ X2) @ X3)) @ X3)))) @ cHOL4.list.NIL) @ X1))))))) (Trich_list.FILTER_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ (((cHOL4.bool.COND @ (X0 @ X1)) @ ((cHOL4.list.SNOC @ X1) @ ((cHOL4.list.FILTER @ X0) @ X2))) @ ((cHOL4.list.FILTER @ X0) @ X2)))))))))) (Trich_list.FILTER_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ X3)) @ ((cHOL4.list.SNOC @ X3) @ X2)) @ X2)))) @ cHOL4.list.NIL) @ X1))))))) (Trich_list.FILTER_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.FILTER @ X1) @ X2))) @ ((cHOL4.list.FILTER @ X1) @ ((cHOL4.list.FILTER @ X0) @ X2)))))))))) (Trich_list.FILTER_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.FILTER @ X0) @ X1))) @ ((cHOL4.list.FILTER @ X0) @ X1))))))) (Trich_list.FILTER_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.MAP @ X1) @ X2))) @ ((cHOL4.list.MAP @ X1) @ ((cHOL4.list.FILTER @ ((cHOL4.combin.o @ X0) @ X1)) @ X2)))))))))) (Trich_list.LENGTH_FILTER_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ ((cHOL4.list.FILTER @ X0) @ X1))) @ (cHOL4.list.LENGTH @ X1))))))) (Trich_list.FILTER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ X2)) @ ((cHOL4.list.FILTER @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X2))) @ ((cHOL4.min.= @ (X0 @ X3)) @ (X1 @ X3))))))))))))) (Trich_list.LENGTH_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2))) @ X0))))))))) (Trich_list.APPEND_NIL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ cHOL4.list.NIL)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ cHOL4.list.NIL) @ X1)) @ X1))))) (Trich_list.APPEND_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ cHOL4.list.CONS) @ X1) @ X0))))))) (Trich_list.APPEND_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.list.SNOC @ X3) @ X2)))) @ X0) @ X1))))))) (Trich_list.FOLDR_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ (((cHOL4.list.FOLDR @ X0) @ (((cHOL4.list.FOLDR @ X0) @ X1) @ X3)) @ X2))))))))))) (Trich_list.FOLDL_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ (((cHOL4.list.FOLDL @ X0) @ (((cHOL4.list.FOLDL @ X0) @ X1) @ X2)) @ X3))))))))))) (Trich_list.CONS_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.CONS @ X0) @ X1)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)) @ X1))))))) (Trich_list.ASSOC_APPEND,(cHOL4.operator.ASSOC @ cHOL4.list.APPEND)) (Trich_list.MONOID_APPEND_NIL,((cHOL4.operator.MONOID @ cHOL4.list.APPEND) @ cHOL4.list.NIL)) (Trich_list.FLAT_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.list.APPEND @ (cHOL4.list.FLAT @ X1)) @ X0))))))) (Trich_list.FLAT_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ X0)) @ (((cHOL4.list.FOLDR @ cHOL4.list.APPEND) @ cHOL4.list.NIL) @ X0))))) (Trich_list.FLAT_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ X0)) @ (((cHOL4.list.FOLDL @ cHOL4.list.APPEND) @ cHOL4.list.NIL) @ X0))))) (Trich_list.LENGTH_FLAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.FLAT @ X0))) @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ cHOL4.list.LENGTH) @ X0)))))) (Trich_list.REVERSE_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ (((cHOL4.list.FOLDR @ cHOL4.list.SNOC) @ cHOL4.list.NIL) @ X0))))) (Trich_list.REVERSE_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ X0)) @ (((cHOL4.list.FOLDL @ (^[X1]: (^[X2]: ((cHOL4.list.CONS @ X2) @ X1)))) @ cHOL4.list.NIL) @ X0))))) (Trich_list.ALL_EL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.MAP @ X1) @ X2))) @ ((cHOL4.list.EVERY @ ((cHOL4.combin.o @ X0) @ X1)) @ X2))))))))) (Trich_list.MEM_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.list.EXISTS @ (cHOL4.min.= @ X0)) @ X1))))))) (Trich_list.SUM_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SUM @ X0)) @ (((cHOL4.list.FOLDR @ cHOL4.arithmetic.+) @ cHOL4.num.0) @ X0))))) (Trich_list.SUM_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SUM @ X0)) @ (((cHOL4.list.FOLDL @ cHOL4.arithmetic.+) @ cHOL4.num.0) @ X0))))) (Trich_list.IS_PREFIX,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ cHOL4.list.NIL) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.CONS @ X1) @ X0)) @ cHOL4.list.NIL)) @ cHOL4.bool.F)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.CONS @ X4) @ X5)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X4)) @ ((cHOL4.list.isPREFIX @ X5) @ X3)))))))))))))) (Trich_list.IS_PREFIX_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2)))))))))) (Trich_list.IS_SUFFIX_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X2) @ X1)))))))))) (Trich_list.IS_SUBLIST_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUBLIST @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.APPEND @ X1) @ X3))))))))))))) (Trich_list.IS_PREFIX_IS_SUBLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.isPREFIX @ X1) @ X0)) @ ((cHOL4.rich_list.IS_SUBLIST @ X0) @ X1))))))) (Trich_list.IS_SUFFIX_IS_SUBLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ X1)) @ ((cHOL4.rich_list.IS_SUBLIST @ X0) @ X1))))))) (Trich_list.IS_PREFIX_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ (cHOL4.list.REVERSE @ X1)) @ (cHOL4.list.REVERSE @ X0))) @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ X1))))))) (Trich_list.IS_SUFFIX_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUFFIX @ (cHOL4.list.REVERSE @ X1)) @ (cHOL4.list.REVERSE @ X0))) @ ((cHOL4.list.isPREFIX @ X0) @ X1))))))) (Trich_list.IS_SUFFIX_CONS2_E,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ X2))))))))) (Trich_list.IS_SUFFIX_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.rich_list.IS_SUFFIX @ X0) @ X0)))) (Trich_list.IS_SUBLIST_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUBLIST @ (cHOL4.list.REVERSE @ X0)) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.rich_list.IS_SUBLIST @ X0) @ X1))))))) (Trich_list.PREFIX_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.PREFIX @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ (X0 @ X2)) @ ((cHOL4.list.CONS @ X2) @ X3)) @ cHOL4.list.NIL)))) @ cHOL4.list.NIL) @ X1))))))) (Trich_list.PREFIX,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.PREFIX @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.rich_list.PREFIX @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.bool.COND @ (X1 @ X2)) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.rich_list.PREFIX @ X1) @ X3))) @ cHOL4.list.NIL)))))))))) (Trich_list.IS_PREFIX_PREFIX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.list.isPREFIX @ ((cHOL4.rich_list.PREFIX @ X0) @ X1)) @ X1)))))) (Trich_list.LENGTH_SCANL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.rich_list.SCANL @ X0) @ X1) @ X2))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X2)))))))))) (Trich_list.LENGTH_SCANR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (((cHOL4.rich_list.SCANR @ X0) @ X1) @ X2))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X2)))))))))) (Trich_list.COMM_MONOID_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.operator.COMM @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.MONOID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X2) @ X3)) @ ((X0 @ X2) @ (((cHOL4.list.FOLDL @ X0) @ X1) @ X3)))))))))))))) (Trich_list.COMM_MONOID_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.operator.COMM @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.MONOID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X2) @ X3)) @ ((X0 @ X2) @ (((cHOL4.list.FOLDR @ X0) @ X1) @ X3)))))))))))))) (Trich_list.FCOMM_FOLDR_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.FCOMM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.operator.LEFT_ID @ X0) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X1) @ X2) @ ((cHOL4.list.APPEND @ X3) @ X4))) @ ((X0 @ (((cHOL4.list.FOLDR @ X1) @ X2) @ X3)) @ (((cHOL4.list.FOLDR @ X1) @ X2) @ X4)))))))))))))))) (Trich_list.FCOMM_FOLDL_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.FCOMM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.operator.RIGHT_ID @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X2) @ ((cHOL4.list.APPEND @ X3) @ X4))) @ ((X1 @ (((cHOL4.list.FOLDL @ X0) @ X2) @ X3)) @ (((cHOL4.list.FOLDL @ X0) @ X2) @ X4)))))))))))))))) (Trich_list.FOLDL_SINGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ ((X0 @ X1) @ X2))))))))) (Trich_list.FOLDR_SINGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ ((X0 @ X2) @ X1))))))))) (Trich_list.FOLDR_CONS_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ cHOL4.list.CONS) @ cHOL4.list.NIL) @ X0)) @ X0)))) (Trich_list.FOLDL_SNOC_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ (^[X1]: (^[X2]: ((cHOL4.list.SNOC @ X2) @ X1)))) @ cHOL4.list.NIL) @ X0)) @ X0)))) (Trich_list.FOLDR_FOLDL_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ X2)) @ (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((X0 @ X4) @ X3)))) @ X1) @ (cHOL4.list.REVERSE @ X2)))))))))) (Trich_list.FOLDL_FOLDR_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ X2)) @ (((cHOL4.list.FOLDR @ (^[X3]: (^[X4]: ((X0 @ X4) @ X3)))) @ X1) @ (cHOL4.list.REVERSE @ X2)))))))))) (Trich_list.FOLDR_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ (cHOL4.list.REVERSE @ X2))) @ (((cHOL4.list.FOLDL @ (^[X3]: (^[X4]: ((X0 @ X4) @ X3)))) @ X1) @ X2))))))))) (Trich_list.FOLDL_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ (cHOL4.list.REVERSE @ X2))) @ (((cHOL4.list.FOLDR @ (^[X3]: (^[X4]: ((X0 @ X4) @ X3)))) @ X1) @ X2))))))))) (Trich_list.FOLDR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.MAP @ X2) @ X3))) @ (((cHOL4.list.FOLDR @ (^[X4]: (^[X5]: ((X0 @ (X2 @ X4)) @ X5)))) @ X1) @ X3))))))))))) (Trich_list.FOLDL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.MAP @ X2) @ X3))) @ (((cHOL4.list.FOLDL @ (^[X4]: (^[X5]: ((X0 @ X4) @ (X2 @ X5))))) @ X1) @ X3))))))))))) (Trich_list.EVERY_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ (X0 @ X2)) @ X3)))) @ cHOL4.bool.T) @ X1))))))) (Trich_list.EVERY_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ X2) @ (X0 @ X3))))) @ cHOL4.bool.T) @ X1))))))) (Trich_list.EXISTS_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ X3)))) @ cHOL4.bool.F) @ X1))))))) (Trich_list.EXISTS_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ X2) @ (X0 @ X3))))) @ cHOL4.bool.F) @ X1))))))) (Trich_list.EVERY_FOLDR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ cHOL4.bool./\) @ cHOL4.bool.T) @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Trich_list.EVERY_FOLDL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ cHOL4.bool./\) @ cHOL4.bool.T) @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Trich_list.EXISTS_FOLDR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ cHOL4.bool.\/) @ cHOL4.bool.F) @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Trich_list.EXISTS_FOLDL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ cHOL4.bool.\/) @ cHOL4.bool.F) @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Trich_list.FOLDR_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.FILTER @ X2) @ X3))) @ (((cHOL4.list.FOLDR @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ (X2 @ X4)) @ ((X0 @ X4) @ X5)) @ X5)))) @ X1) @ X3))))))))))) (Trich_list.FOLDL_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.FILTER @ X2) @ X3))) @ (((cHOL4.list.FOLDL @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ (X2 @ X5)) @ ((X0 @ X4) @ X5)) @ X4)))) @ X1) @ X3))))))))))) (Trich_list.ASSOC_FOLDR_FLAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.LEFT_ID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ (cHOL4.list.FLAT @ X2))) @ (((cHOL4.list.FOLDR @ X0) @ X1) @ ((cHOL4.list.MAP @ ((cHOL4.list.FOLDR @ X0) @ X1)) @ X2)))))))))))) (Trich_list.ASSOC_FOLDL_FLAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.RIGHT_ID @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ (cHOL4.list.FLAT @ X2))) @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.MAP @ ((cHOL4.list.FOLDL @ X0) @ X1)) @ X2)))))))))))) (Trich_list.MAP_FLAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ (cHOL4.list.FLAT @ X1))) @ (cHOL4.list.FLAT @ ((cHOL4.list.MAP @ (cHOL4.list.MAP @ X0)) @ X1)))))))) (Trich_list.FILTER_FLAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ (cHOL4.list.FLAT @ X1))) @ (cHOL4.list.FLAT @ ((cHOL4.list.MAP @ (cHOL4.list.FILTER @ X0)) @ X1)))))))) (Trich_list.EXISTS_DISJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ (^[X3]: ((cHOL4.bool.\/ @ (X0 @ X3)) @ (X1 @ X3)))) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.list.EXISTS @ X0) @ X2)) @ ((cHOL4.list.EXISTS @ X1) @ X2)))))))))) (Trich_list.MEM_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (((cHOL4.list.FOLDR @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X2)) @ X3)))) @ cHOL4.bool.F) @ X1))))))) (Trich_list.MEM_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ X2) @ ((cHOL4.min.= @ X0) @ X3))))) @ cHOL4.bool.F) @ X1))))))) (Trich_list.NULL_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.NULL @ X0)) @ (((cHOL4.list.FOLDR @ (^[X1]: (^[X2]: cHOL4.bool.F))) @ cHOL4.bool.T) @ X0))))) (Trich_list.NULL_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.NULL @ X0)) @ (((cHOL4.list.FOLDL @ (^[X1]: (^[X2]: cHOL4.bool.F))) @ cHOL4.bool.T) @ X0))))) (Trich_list.MAP_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ (cHOL4.list.REVERSE @ X1))) @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Trich_list.SEG_LENGTH_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0) @ X0)) @ X0)))) (Trich_list.SEG_SUC_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.list.CONS @ X3) @ X2))) @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2))))))))))) (Trich_list.SEG_0_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ cHOL4.num.0) @ ((cHOL4.list.SNOC @ X2) @ X1))) @ (((cHOL4.rich_list.SEG @ X0) @ cHOL4.num.0) @ X1)))))))))) (Trich_list.BUTLASTN_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1)) @ (((cHOL4.rich_list.SEG @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ cHOL4.num.0) @ X1)))))))) (Trich_list.LASTN_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.rich_list.LASTN @ X0) @ X1)))))))))) (Trich_list.LENGTH_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.rich_list.LASTN @ X0) @ X1))) @ X0))))))) (Trich_list.LASTN_LENGTH_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ (cHOL4.list.LENGTH @ X0)) @ X0)) @ X0)))) (Trich_list.LASTN_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X0))) @ ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X1) @ ((cHOL4.rich_list.LASTN @ X2) @ X0))) @ ((cHOL4.rich_list.LASTN @ X1) @ X0))))))))))) (Trich_list.TAKE_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ ((cHOL4.list.SNOC @ X2) @ X1))) @ ((cHOL4.list.TAKE @ X0) @ X1)))))))))) (Trich_list.BUTLASTN_LENGTH_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ (cHOL4.list.LENGTH @ X0)) @ X0)) @ cHOL4.list.NIL)))) (Trich_list.DROP_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.DROP @ X0) @ X1)) @ X2)))))))))) (Trich_list.DROP_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ X1) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X2)))))))))) (Trich_list.DROP_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ ((cHOL4.list.DROP @ X1) @ X2))) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)))))))))) (Trich_list.LASTN_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ X1)) @ (((cHOL4.rich_list.SEG @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X1)))))))) (Trich_list.TAKE_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ X1)) @ (((cHOL4.rich_list.SEG @ X0) @ cHOL4.num.0) @ X1)))))))) (Trich_list.DROP_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ X1)) @ (((cHOL4.rich_list.SEG @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X0) @ X1)))))))) (Trich_list.DROP_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ ((cHOL4.list.SNOC @ X2) @ X1))) @ ((cHOL4.list.SNOC @ X2) @ ((cHOL4.list.DROP @ X0) @ X1))))))))))) (Trich_list.APPEND_BUTLASTN_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X2)) @ ((cHOL4.list.DROP @ X1) @ X2))) @ X2))))))))) (Trich_list.SEG_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X4))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X2) @ X3)) @ X0))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X2) @ X3) @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X4))) @ (((cHOL4.rich_list.SEG @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ X3)) @ X4)))))))))))))) (Trich_list.SEG_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2)))))))))))) (Trich_list.SEG_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X3)))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X2) @ X1) @ ((cHOL4.list.APPEND @ X0) @ X3))) @ (((cHOL4.rich_list.SEG @ X2) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X3)))))))))))) (Trich_list.SEG_TAKE_BUTFISTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2)) @ ((cHOL4.list.TAKE @ X0) @ ((cHOL4.list.DROP @ X1) @ X2))))))))))) (Trich_list.SEG_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X3)))))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X2) @ X0) @ ((cHOL4.list.APPEND @ X1) @ X3))) @ ((cHOL4.list.APPEND @ (((cHOL4.rich_list.SEG @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X0) @ X1)) @ (((cHOL4.rich_list.SEG @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X2) @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ cHOL4.num.0) @ X3))))))))))))) (Trich_list.SEG_LENGTH_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.SNOC @ X1) @ X0))) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))) (Trich_list.SEG_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ ((cHOL4.list.SNOC @ X3) @ X2))) @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2)))))))))))) (Trich_list.ELL_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ X1)) @ (cHOL4.list.HD @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0))) @ X1))))))))) (Trich_list.SNOC_FOLDR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.SNOC @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ cHOL4.list.CONS) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)) @ X1))))))) (Trich_list.MEM_FOLDR_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (((cHOL4.list.FOLDR @ cHOL4.bool.\/) @ cHOL4.bool.F) @ ((cHOL4.list.MAP @ (cHOL4.min.= @ X0)) @ X1)))))))) (Trich_list.MEM_FOLDL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (((cHOL4.list.FOLDL @ cHOL4.bool.\/) @ cHOL4.bool.F) @ ((cHOL4.list.MAP @ (cHOL4.min.= @ X0)) @ X1)))))))) (Trich_list.FILTER_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X0) @ ((cHOL4.list.FILTER @ X1) @ X2))) @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ (X0 @ X3)) @ (X1 @ X3)))) @ X2))))))))) (Trich_list.FCOMM_FOLDR_FLAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.FCOMM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.operator.LEFT_ID @ X0) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X1) @ X2) @ (cHOL4.list.FLAT @ X3))) @ (((cHOL4.list.FOLDR @ X0) @ X2) @ ((cHOL4.list.MAP @ ((cHOL4.list.FOLDR @ X1) @ X2)) @ X3)))))))))))))) (Trich_list.FCOMM_FOLDL_FLAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.operator.FCOMM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.operator.RIGHT_ID @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X2) @ (cHOL4.list.FLAT @ X3))) @ (((cHOL4.list.FOLDL @ X1) @ X2) @ ((cHOL4.list.MAP @ ((cHOL4.list.FOLDL @ X0) @ X2)) @ X3)))))))))))))) (Trich_list.FOLDR_MAP_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ X1) @ ((X0 @ X2) @ X3))) @ ((X0 @ X2) @ ((X0 @ X1) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X4) @ ((cHOL4.list.MAP @ X5) @ (cHOL4.list.REVERSE @ X6)))) @ (((cHOL4.list.FOLDR @ X0) @ X4) @ ((cHOL4.list.MAP @ X5) @ X6))))))))))))) (Trich_list.FOLDR_FILTER_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((X0 @ X1) @ ((X0 @ X2) @ X3))) @ ((X0 @ X2) @ ((X0 @ X1) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X4) @ ((cHOL4.list.FILTER @ X5) @ (cHOL4.list.REVERSE @ X6)))) @ (((cHOL4.list.FOLDR @ X0) @ X4) @ ((cHOL4.list.FILTER @ X5) @ X6))))))))))))) (Trich_list.COMM_ASSOC_FOLDR_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.operator.COMM @ X0)) @ ((cHOL4.min.==> @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X1) @ (cHOL4.list.REVERSE @ X2))) @ (((cHOL4.list.FOLDR @ X0) @ X1) @ X2))))))))))) (Trich_list.COMM_ASSOC_FOLDL_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.operator.COMM @ X0)) @ ((cHOL4.min.==> @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ (cHOL4.list.REVERSE @ X2))) @ (((cHOL4.list.FOLDL @ X0) @ X1) @ X2))))))))))) (Trich_list.ELL_LAST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ cHOL4.num.0) @ X0)) @ (cHOL4.list.LAST @ X0)))))) (Trich_list.ELL_0_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ cHOL4.num.0) @ ((cHOL4.list.SNOC @ X1) @ X0))) @ X1)))))) (Trich_list.ELL_SNOC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.rich_list.ELL @ (cHOL4.prim_rec.PRE @ X0)) @ X2)))))))))) (Trich_list.ELL_SUC_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.list.SNOC @ X1) @ X2))) @ ((cHOL4.rich_list.ELL @ X0) @ X2))))))))) (Trich_list.ELL_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.rich_list.ELL @ X0) @ X1)))))))))) (Trich_list.ELL_LENGTH_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.CONS @ X1) @ X0))) @ X1)))))) (Trich_list.ELL_LENGTH_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.SNOC @ X1) @ X0))) @ (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X0)) @ X1) @ (cHOL4.list.HD @ X0)))))))) (Trich_list.ELL_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ ((cHOL4.list.APPEND @ X2) @ X1))) @ ((cHOL4.rich_list.ELL @ X0) @ X1)))))))))) (Trich_list.ELL_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X1) @ ((cHOL4.list.APPEND @ X2) @ X0))) @ ((cHOL4.rich_list.ELL @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X2)))))))))) (Trich_list.ELL_PRE_LENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.prim_rec.PRE @ (cHOL4.list.LENGTH @ X0))) @ X0)) @ (cHOL4.list.HD @ X0)))))) (Trich_list.EL_PRE_LENGTH,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ (cHOL4.list.LENGTH @ X0))) @ X0)) @ (cHOL4.list.LAST @ X0)))))) (Trich_list.EL_ELL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ X1)) @ ((cHOL4.rich_list.ELL @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0))) @ X1)))))))) (Trich_list.EL_LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ (cHOL4.list.HD @ X0)))))))) (Trich_list.ELL_EL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ X1)) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0))) @ X1)))))))) (Trich_list.ELL_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ ((cHOL4.list.MAP @ X2) @ X1))) @ (X2 @ ((cHOL4.rich_list.ELL @ X0) @ X1))))))))))) (Trich_list.LENGTH_FRONT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.list.FRONT @ X0))) @ (cHOL4.prim_rec.PRE @ (cHOL4.list.LENGTH @ X0))))))) (Trich_list.DROP_LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.DROP @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ X1)))))) (Trich_list.TAKE_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.TAKE @ X0) @ X1)))))))))) (Trich_list.TAKE_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X1) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X2))))))))))) (Trich_list.TAKE_LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.TAKE @ (cHOL4.list.LENGTH @ X0)) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ X0)))))) (Trich_list.REVERSE_FLAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.REVERSE @ (cHOL4.list.FLAT @ X0))) @ (cHOL4.list.FLAT @ (cHOL4.list.REVERSE @ ((cHOL4.list.MAP @ cHOL4.list.REVERSE) @ X0))))))) (Trich_list.MAP_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X1 @ (X0 @ X3))) @ (X1 @ X3))))) @ ((cHOL4.min.= @ ((cHOL4.list.MAP @ X0) @ ((cHOL4.list.FILTER @ X1) @ X2))) @ ((cHOL4.list.FILTER @ X1) @ ((cHOL4.list.MAP @ X0) @ X2))))))))))) (Trich_list.FLAT_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ (cHOL4.list.REVERSE @ X0))) @ (cHOL4.list.REVERSE @ (cHOL4.list.FLAT @ ((cHOL4.list.MAP @ cHOL4.list.REVERSE) @ X0))))))) (Trich_list.FLAT_FLAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.FLAT @ (cHOL4.list.FLAT @ X0))) @ (cHOL4.list.FLAT @ ((cHOL4.list.MAP @ cHOL4.list.FLAT) @ X0)))))) (Trich_list.EVERY_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EVERY @ X0) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.list.EVERY @ X0) @ X1))))))) (Trich_list.EXISTS_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.EXISTS @ X0) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.list.EXISTS @ X0) @ X1))))))) (Trich_list.EVERY_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X2) @ X3)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.list.EVERY @ X0) @ (((cHOL4.rich_list.SEG @ X2) @ X3) @ X1))))))))))))) (Trich_list.EVERY_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.TAKE @ X2) @ X1))))))))))) (Trich_list.EVERY_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X2) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.list.EVERY @ X0) @ ((cHOL4.list.DROP @ X2) @ X1))))))))))) (Trich_list.EXISTS_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X3) @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2))) @ ((cHOL4.list.EXISTS @ X3) @ X2)))))))))))) (Trich_list.EXISTS_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X2) @ ((cHOL4.list.TAKE @ X0) @ X1))) @ ((cHOL4.list.EXISTS @ X2) @ X1)))))))))) (Trich_list.EXISTS_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X2) @ ((cHOL4.list.DROP @ X0) @ X1))) @ ((cHOL4.list.EXISTS @ X2) @ X1)))))))))) (Trich_list.EXISTS_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X2) @ ((cHOL4.rich_list.LASTN @ X0) @ X1))) @ ((cHOL4.list.EXISTS @ X2) @ X1)))))))))) (Trich_list.EXISTS_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.EXISTS @ X2) @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1))) @ ((cHOL4.list.EXISTS @ X2) @ X1)))))))))) (Trich_list.MEM_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2)))) @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X2))))))))))))) (Trich_list.MEM_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.TAKE @ X0) @ X1)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Trich_list.MEM_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.DROP @ X0) @ X1)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Trich_list.MEM_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Trich_list.MEM_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.rich_list.LASTN @ X0) @ X1)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Trich_list.ZIP_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.list.SNOC @ X2) @ X0)) @ ((cHOL4.list.SNOC @ X3) @ X1)))) @ ((cHOL4.list.SNOC @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))))))))) (Trich_list.UNZIP_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.UNZIP @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.SNOC @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.FST @ (cHOL4.list.UNZIP @ X1)))) @ ((cHOL4.list.SNOC @ (cHOL4.pair.SND @ X0)) @ (cHOL4.pair.SND @ (cHOL4.list.UNZIP @ X1)))))))))) (Trich_list.LENGTH_UNZIP_FST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.rich_list.UNZIP_FST @ X0))) @ (cHOL4.list.LENGTH @ X0))))) (Trich_list.LENGTH_UNZIP_SND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.rich_list.UNZIP_SND @ X0))) @ (cHOL4.list.LENGTH @ X0))))) (Trich_list.SUM_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SUM @ (cHOL4.list.REVERSE @ X0))) @ (cHOL4.list.SUM @ X0))))) (Trich_list.SUM_FLAT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.SUM @ (cHOL4.list.FLAT @ X0))) @ (cHOL4.list.SUM @ ((cHOL4.list.MAP @ cHOL4.list.SUM) @ X0)))))) (Trich_list.EL_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.EL @ X0) @ X1)))))))))) (Trich_list.EL_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.list.LENGTH @ X0))) @ X2)))))))))) (Trich_list.EL_CONS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.list.EL @ (cHOL4.prim_rec.PRE @ X0)) @ X2)))))))))) (Trich_list.EL_SEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ X1)) @ (cHOL4.list.HD @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0) @ X1))))))))) (Trich_list.EL_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.list.EL @ X0) @ X1)) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Trich_list.TL_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.TL @ ((cHOL4.list.SNOC @ X0) @ X1))) @ (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X1)) @ cHOL4.list.NIL) @ ((cHOL4.list.SNOC @ X0) @ (cHOL4.list.TL @ X1))))))))) (Trich_list.EL_REVERSE_ELL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.rich_list.ELL @ X0) @ X1)))))))) (Trich_list.ELL_LENGTH_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ (cHOL4.list.LENGTH @ X1)) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ (cHOL4.list.LAST @ X0)))))))) (Trich_list.ELL_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.rich_list.ELL @ X0) @ X1)) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Trich_list.ELL_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.rich_list.ELL @ (cHOL4.prim_rec.PRE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0))) @ X1)))))))) (Trich_list.ELL_REVERSE_EL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.ELL @ X0) @ (cHOL4.list.REVERSE @ X1))) @ ((cHOL4.list.EL @ X0) @ X1)))))))) (Trich_list.TAKE_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ X1)) @ ((cHOL4.rich_list.BUTLASTN @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X1)))))))) (Trich_list.BUTLASTN_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1)) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X1)))))))) (Trich_list.LASTN_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ X1)) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X1)))))))) (Trich_list.DROP_LASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ X1)) @ ((cHOL4.rich_list.LASTN @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X1)) @ X0)) @ X1)))))))) (Trich_list.SEG_LASTN_BUTLASTN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ X2)) @ ((cHOL4.rich_list.LASTN @ X0) @ ((cHOL4.rich_list.BUTLASTN @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X2)) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ X2))))))))))) (Trich_list.DROP_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ (cHOL4.list.REVERSE @ X1))) @ (cHOL4.list.REVERSE @ ((cHOL4.rich_list.BUTLASTN @ X0) @ X1))))))))) (Trich_list.BUTLASTN_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X0) @ (cHOL4.list.REVERSE @ X1))) @ (cHOL4.list.REVERSE @ ((cHOL4.list.DROP @ X0) @ X1))))))))) (Trich_list.LASTN_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X0) @ (cHOL4.list.REVERSE @ X1))) @ (cHOL4.list.REVERSE @ ((cHOL4.list.TAKE @ X0) @ X1))))))))) (Trich_list.TAKE_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.TAKE @ X0) @ (cHOL4.list.REVERSE @ X1))) @ (cHOL4.list.REVERSE @ ((cHOL4.rich_list.LASTN @ X0) @ X1))))))))) (Trich_list.SEG_REVERSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ X0) @ X1) @ (cHOL4.list.REVERSE @ X2))) @ (cHOL4.list.REVERSE @ (((cHOL4.rich_list.SEG @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X2)) @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ X2))))))))))) (Trich_list.LENGTH_REPLICATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.rich_list.REPLICATE @ X0) @ X1))) @ X0)))))) (Trich_list.MEM_REPLICATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ X1) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.rich_list.REPLICATE @ X0) @ X1))))))))) (Trich_list.EVERY_REPLICATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.list.EVERY @ (cHOL4.min.= @ X0)) @ ((cHOL4.rich_list.REPLICATE @ X1) @ X0))))))) (Trich_list.AND_EL_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.AND_EL @ X0)) @ (((cHOL4.list.FOLDL @ cHOL4.bool./\) @ cHOL4.bool.T) @ X0))))) (Trich_list.AND_EL_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.AND_EL @ X0)) @ (((cHOL4.list.FOLDR @ cHOL4.bool./\) @ cHOL4.bool.T) @ X0))))) (Trich_list.OR_EL_FOLDL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.OR_EL @ X0)) @ (((cHOL4.list.FOLDL @ cHOL4.bool.\/) @ cHOL4.bool.F) @ X0))))) (Trich_list.OR_EL_FOLDR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.OR_EL @ X0)) @ (((cHOL4.list.FOLDR @ cHOL4.bool.\/) @ cHOL4.bool.F) @ X0))))) (Trich_list.IS_PREFIX_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.list.isPREFIX @ cHOL4.list.NIL) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))) (Trich_list.IS_PREFIX_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.list.isPREFIX @ X0) @ X0)))) (Trich_list.IS_PREFIX_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.isPREFIX @ X0) @ X1)) @ ((cHOL4.list.isPREFIX @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trich_list.IS_PREFIX_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.list.isPREFIX @ X1) @ X0)) @ ((cHOL4.list.isPREFIX @ X2) @ X1))) @ ((cHOL4.list.isPREFIX @ X2) @ X0))))))))) (Trich_list.IS_PREFIX_BUTLAST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.list.isPREFIX @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ X1))))))) (Trich_list.IS_PREFIX_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.isPREFIX @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))))))) (Trich_list.IS_PREFIX_LENGTH_ANTI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.list.isPREFIX @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Trich_list.IS_PREFIX_SNOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ X2) @ ((cHOL4.list.SNOC @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.list.isPREFIX @ X2) @ X1)) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.SNOC @ X0) @ X1))))))))))) (Trich_list.IS_PREFIX_APPEND1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X2)) @ ((cHOL4.list.isPREFIX @ X0) @ X2))))))))) (Trich_list.IS_PREFIX_APPEND2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.list.isPREFIX @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.list.isPREFIX @ X0) @ X1)) @ ((cHOL4.list.isPREFIX @ X1) @ X0)))))))))) (Trich_list.IS_PREFIX_APPENDS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.list.isPREFIX @ X1) @ X2))))))))) (Trich_list.IS_PREFIX_APPEND3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.list.isPREFIX @ X0) @ ((cHOL4.list.APPEND @ X0) @ X1))))))) (Trich_list.COUNT_LIST_GENLIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ X0)) @ ((cHOL4.list.GENLIST @ cHOL4.combin.I) @ X0))))) (Trich_list.LENGTH_COUNT_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ (cHOL4.rich_list.COUNT_LIST @ X0))) @ X0)))) (Trich_list.EL_COUNT_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ (cHOL4.rich_list.COUNT_LIST @ X1))) @ X0))))))) (Trich_list.MEM_COUNT_LIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.rich_list.COUNT_LIST @ X1)))) @ ((cHOL4.prim_rec.< @ X0) @ X1))))))) (Trich_list.COUNT_LIST_SNOC,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ cHOL4.num.0)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.list.SNOC @ X0) @ (cHOL4.rich_list.COUNT_LIST @ X0))))))) (Trich_list.COUNT_LIST_COUNT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ (cHOL4.rich_list.COUNT_LIST @ X0))) @ (cHOL4.pred_set.count @ X0))))) (Trich_list.COUNT_LIST_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ ((cHOL4.arithmetic.+ @ X0) @ X1))) @ ((cHOL4.list.APPEND @ (cHOL4.rich_list.COUNT_LIST @ X0)) @ ((cHOL4.list.MAP @ (^[X2]: ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (cHOL4.rich_list.COUNT_LIST @ X1))))))))) (Trich_list.EL_DROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X0) @ ((cHOL4.list.DROP @ X1) @ X2))) @ ((cHOL4.list.EL @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)))))))))) (Trich_list.SNOC_EL_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.SNOC @ ((cHOL4.list.EL @ X0) @ X1)) @ ((cHOL4.list.TAKE @ X0) @ X1))) @ ((cHOL4.list.TAKE @ (cHOL4.num.SUC @ X0)) @ X1)))))))) (Trich_list.ZIP_TAKE_LEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.list.TAKE @ X0) @ X1)) @ ((cHOL4.list.TAKE @ X0) @ X2)))) @ ((cHOL4.list.TAKE @ X0) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.list.TAKE @ (cHOL4.list.LENGTH @ X1)) @ X2))))))))))))) (Trich_list.ZIP_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.min.= @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.list.TAKE @ X0) @ X1)) @ ((cHOL4.list.TAKE @ X0) @ X2)))) @ ((cHOL4.list.TAKE @ X0) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))) (Trich_list.EL_TAKE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.list.LENGTH @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ ((cHOL4.list.TAKE @ X0) @ X2))) @ ((cHOL4.list.EL @ X1) @ X2)))))))))) (Trich_list.ZIP_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X2)) @ (cHOL4.list.LENGTH @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.list.ZIP @ ((cHOL4.pair.|comma| @ ((cHOL4.list.APPEND @ X0) @ X2)) @ ((cHOL4.list.APPEND @ X1) @ X3)))))))))))))) (Trich_list.APPEND_ASSOC_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ X3)) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))))))))))))) (Trich_list.APPEND_SNOC1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.SNOC @ X1) @ X0)) @ X2)) @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)))))))))) (Trich_list.FOLDL_MAP2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.list.FOLDL @ X0) @ X1) @ ((cHOL4.list.MAP @ X2) @ X3))) @ (((cHOL4.list.FOLDL @ (^[X4]: (^[X5]: ((X0 @ X4) @ (X2 @ X5))))) @ X1) @ X3))))))))))) (Trich_list.SPLITP_EVERY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.list.EVERY @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.rich_list.SPLITP @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.list.NIL)))))))) (Trich_list.MEM_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X1) @ X0))))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X1) @ X0))))))))))) (Trich_list.FRONT_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.list.FRONT @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.CONS @ X2) @ X1)))) @ ((cHOL4.list.APPEND @ X0) @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X2) @ X1))))))))))) (Trich_list.EL_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.list.LENGTH @ (cHOL4.list.FRONT @ X0)))) @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.list.EL @ X1) @ (cHOL4.list.FRONT @ X0))) @ ((cHOL4.list.EL @ X1) @ X0)))))))) (Trich_list.MEM_LAST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.CONS @ X0) @ X1)))))))) (Trich_list.DROP_CONS_EL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.list.LENGTH @ X1))) @ ((cHOL4.min.= @ ((cHOL4.list.DROP @ X0) @ X1)) @ ((cHOL4.list.CONS @ ((cHOL4.list.EL @ X0) @ X1)) @ ((cHOL4.list.DROP @ (cHOL4.num.SUC @ X0)) @ X1))))))))) (Trich_list.MEM_LAST_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.list.LAST @ ((cHOL4.list.CONS @ X2) @ X1)))))) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ (cHOL4.list.FRONT @ ((cHOL4.list.CONS @ X2) @ X1)))))))))))) (Trich_list.LIST_ELEM_COUNT_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X0) @ cHOL4.list.NIL)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X1) @ X2)) @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X1) @ X3)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X5) @ X4)) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X4) @ ((cHOL4.list.CONS @ X5) @ X6))) @ (cHOL4.num.SUC @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X4) @ X6))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X8) @ X7))) @ ((cHOL4.min.= @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X7) @ ((cHOL4.list.CONS @ X8) @ X9))) @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X7) @ X9))))))))))))) (Trich_list.LIST_ELEM_COUNT_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.> @ ((cHOL4.rich_list.LIST_ELEM_COUNT @ X0) @ X1)) @ cHOL4.num.0)) @ ((cHOL4.bool.IN @ X0) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Trich_list.COUNT_LIST_compute,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.rich_list.COUNT_LIST @ X0)) @ ((cHOL4.rich_list.COUNT_LIST_AUX @ X0) @ cHOL4.list.NIL))))) (Trich_list.SPLITP_compute,((cHOL4.min.= @ cHOL4.rich_list.SPLITP) @ (cHOL4.rich_list.SPLITP_AUX @ cHOL4.list.NIL))) (Trich_list.IS_SUFFIX_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.rich_list.IS_SUFFIX @ X0) @ X1)) @ ((cHOL4.list.isPREFIX @ (cHOL4.list.REVERSE @ X1)) @ (cHOL4.list.REVERSE @ X0)))))))) (Trich_list.SEG_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ cHOL4.num.0) @ X0) @ X1)) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ cHOL4.num.0) @ ((cHOL4.list.CONS @ X3) @ X1))) @ ((cHOL4.list.CONS @ X3) @ (((cHOL4.rich_list.SEG @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ cHOL4.num.0) @ ((cHOL4.list.CONS @ X3) @ X1))) @ ((cHOL4.list.CONS @ X3) @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ cHOL4.num.0) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.list.CONS @ X3) @ X1))) @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ ((cHOL4.list.CONS @ X3) @ X1))) @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.list.CONS @ X3) @ X1))) @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ X1))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X0))) @ ((cHOL4.list.CONS @ X3) @ X1))) @ (((cHOL4.rich_list.SEG @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X0))) @ X1))))))))))))))))) (Trich_list.BUTLASTN_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.BUTLASTN @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.list.TAKE @ ((cHOL4.arithmetic.- @ X3) @ X1)) @ X2)) @ ((((cHOL4.combin.FAIL @ cHOL4.rich_list.BUTLASTN) @ X0) @ X1) @ X2)))) @ (cHOL4.list.LENGTH @ X2)))))))))) (Trich_list.LASTN_compute,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.rich_list.LASTN @ X1) @ X2)) @ ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.list.DROP @ ((cHOL4.arithmetic.- @ X3) @ X1)) @ X2)) @ ((((cHOL4.combin.FAIL @ cHOL4.rich_list.LASTN) @ X0) @ X1) @ X2)))) @ (cHOL4.list.LENGTH @ X2)))))))))) (TringNorm.r_interp_sp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_interp_sp @ X0)) @ (cHOL4.canonical.interp_sp @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_spolynom_simplify_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_spolynom_simplify @ X0)) @ (cHOL4.canonical.spolynom_simplify @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_spolynom_normalize_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_spolynom_normalize @ X0)) @ (cHOL4.canonical.spolynom_normalize @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_interp_cs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_interp_cs @ X0)) @ (cHOL4.canonical.interp_cs @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_ics_aux_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_ics_aux @ X0)) @ (cHOL4.canonical.ics_aux @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_interp_m_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_interp_m @ X0)) @ (cHOL4.canonical.interp_m @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_interp_vl_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_interp_vl @ X0)) @ (cHOL4.canonical.interp_vl @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_ivl_aux_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_ivl_aux @ X0)) @ (cHOL4.canonical.ivl_aux @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_canonical_sum_simplify_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_canonical_sum_simplify @ X0)) @ (cHOL4.canonical.canonical_sum_simplify @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_canonical_sum_prod_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_canonical_sum_prod @ X0)) @ (cHOL4.canonical.canonical_sum_prod @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_canonical_sum_scalar3_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0)) @ (cHOL4.canonical.canonical_sum_scalar3 @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_canonical_sum_scalar2_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0)) @ (cHOL4.canonical.canonical_sum_scalar2 @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_canonical_sum_scalar_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_canonical_sum_scalar @ X0)) @ (cHOL4.canonical.canonical_sum_scalar @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_varlist_insert_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_varlist_insert @ X0)) @ (cHOL4.canonical.varlist_insert @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_monom_insert_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_monom_insert @ X0)) @ (cHOL4.canonical.monom_insert @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.r_canonical_sum_merge_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ringNorm.r_canonical_sum_merge @ X0)) @ (cHOL4.canonical.canonical_sum_merge @ (cHOL4.ring.semi_ring_of @ X0)))))) (TringNorm.polynom_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X1) @ ((^[X3]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X3) @ cHOL4.bool.ARB)) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X3))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X1) @ ((^[X5]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ X5)) @ (^[X4]: cHOL4.ind_type.BOTTOM))) @ X5))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X6]: (^[X7]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ ((cHOL4.ind_type.FCONS @ X6) @ ((cHOL4.ind_type.FCONS @ X7) @ (^[X4]: cHOL4.ind_type.BOTTOM)))))) @ X6) @ X7))) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X2 @ X7)))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ (((^[X6]: (^[X7]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0)))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ ((cHOL4.ind_type.FCONS @ X6) @ ((cHOL4.ind_type.FCONS @ X7) @ (^[X4]: cHOL4.ind_type.BOTTOM)))))) @ X6) @ X7))) @ ((cHOL4.bool./\ @ (X2 @ X6)) @ (X2 @ X7)))))))) @ (cHOL4.bool.? @ (^[X8]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X8]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.ARB) @ cHOL4.bool.ARB)) @ ((cHOL4.ind_type.FCONS @ X8) @ (^[X4]: cHOL4.ind_type.BOTTOM)))) @ X8))) @ (X2 @ X8))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (TringNorm.polynom_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((((cHOL4.ringNorm.polynom_CASE @ (cHOL4.ringNorm.Pvar @ X0)) @ X1) @ X2) @ X3) @ X4) @ X5)) @ (X1 @ X0))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((((cHOL4.ringNorm.polynom_CASE @ (cHOL4.ringNorm.Pconst @ X6)) @ X1) @ X2) @ X3) @ X4) @ X5)) @ (X2 @ X6))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((((cHOL4.ringNorm.polynom_CASE @ ((cHOL4.ringNorm.Pplus @ X7) @ X8)) @ X1) @ X2) @ X3) @ X4) @ X5)) @ ((X3 @ X7) @ X8))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((((cHOL4.ringNorm.polynom_CASE @ ((cHOL4.ringNorm.Pmult @ X7) @ X8)) @ X1) @ X2) @ X3) @ X4) @ X5)) @ ((X4 @ X7) @ X8))))))))))))))))) @ (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((((cHOL4.ringNorm.polynom_CASE @ (cHOL4.ringNorm.Popp @ X9)) @ X1) @ X2) @ X3) @ X4) @ X5)) @ (X5 @ X9))))))))))))))))))) (TringNorm.polynom_size_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_size @ X0) @ (cHOL4.ringNorm.Pvar @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.quote.index_size @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_size @ X0) @ (cHOL4.ringNorm.Pconst @ X2))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (X0 @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_size @ X0) @ ((cHOL4.ringNorm.Pplus @ X3) @ X4))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.ringNorm.polynom_size @ X0) @ X3)) @ ((cHOL4.ringNorm.polynom_size @ X0) @ X4))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_size @ X0) @ ((cHOL4.ringNorm.Pmult @ X3) @ X4))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.ringNorm.polynom_size @ X0) @ X3)) @ ((cHOL4.ringNorm.polynom_size @ X0) @ X4))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_size @ X0) @ (cHOL4.ringNorm.Popp @ X5))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.ringNorm.polynom_size @ X0) @ X5)))))))))))) (TringNorm.polynom_normalize_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ (cHOL4.ringNorm.Pvar @ X1))) @ ((cHOL4.canonical.Cons_varlist @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL)) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ (cHOL4.ringNorm.Pconst @ X2))) @ (((cHOL4.canonical.Cons_monom @ X2) @ cHOL4.list.NIL) @ cHOL4.canonical.Nil_monom))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ ((cHOL4.ringNorm.Pplus @ X3) @ X4))) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X3)) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X4)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ ((cHOL4.ringNorm.Pmult @ X3) @ X4))) @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X3)) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ (cHOL4.ringNorm.Popp @ X5))) @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ ((cHOL4.ring.ring_RN @ X0) @ (cHOL4.ring.ring_R1 @ X0))) @ cHOL4.list.NIL) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X5)))))))))))) (TringNorm.polynom_simplify_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ringNorm.polynom_simplify @ X0) @ X1)) @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X1)))))))) (TringNorm.interp_p_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ (cHOL4.ringNorm.Pconst @ X2))) @ X2)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ (cHOL4.ringNorm.Pvar @ X3))) @ ((cHOL4.quote.varmap_find @ X3) @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ ((cHOL4.ringNorm.Pplus @ X4) @ X5))) @ (((cHOL4.ring.ring_RP @ X0) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X4)) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X5)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ ((cHOL4.ringNorm.Pmult @ X4) @ X5))) @ (((cHOL4.ring.ring_RM @ X0) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X4)) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X5)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ (cHOL4.ringNorm.Popp @ X4))) @ ((cHOL4.ring.ring_RN @ X0) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X4)))))))))))))) (TringNorm.interp_sp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ (cHOL4.canonical.SPconst @ X2))) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ (cHOL4.canonical.SPvar @ X3))) @ ((cHOL4.quote.varmap_find @ X3) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ ((cHOL4.canonical.SPplus @ X4) @ X5))) @ (((cHOL4.ring.ring_RP @ X0) @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ X4)) @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ X5)))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ ((cHOL4.canonical.SPmult @ X4) @ X5))) @ (((cHOL4.ring.ring_RM @ X0) @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ X4)) @ (((cHOL4.ringNorm.r_interp_sp @ X0) @ X1) @ X5))))))))))))))) (TringNorm.canonical_sum_merge_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X1)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ X6) @ X5)) @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ X1))) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X2)) @ X1))))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X2)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X1)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ X6) @ (cHOL4.ring.ring_R1 @ X0))) @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ X1))) @ ((cHOL4.canonical.Cons_varlist @ X3) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ (((cHOL4.canonical.Cons_monom @ X6) @ X4) @ X2)) @ X1))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ ((cHOL4.canonical.Cons_varlist @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X1)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ (cHOL4.ring.ring_R1 @ X0)) @ X5)) @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ X1))) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X2)) @ X1))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X2)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X4) @ X3)) @ ((cHOL4.canonical.Cons_varlist @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X1)))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ (cHOL4.ring.ring_R1 @ X0)) @ (cHOL4.ring.ring_R1 @ X0))) @ X4) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X2) @ X1))) @ ((cHOL4.canonical.Cons_varlist @ X3) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X2)) @ X1))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ X7) @ cHOL4.canonical.Nil_monom)) @ X7)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ cHOL4.canonical.Nil_monom) @ (((cHOL4.canonical.Cons_monom @ X10) @ X9) @ X8))) @ (((cHOL4.canonical.Cons_monom @ X10) @ X9) @ X8))))))))) @ (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ cHOL4.canonical.Nil_monom) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X11))) @ ((cHOL4.canonical.Cons_varlist @ X12) @ X11))))))))))))))) (TringNorm.monom_insert_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X5) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X1))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ X5) @ X4)) @ X3) @ X1)) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X5) @ X3) @ X1))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X5) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X1))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ X5) @ (cHOL4.ring.ring_R1 @ X0))) @ X3) @ X1)) @ ((cHOL4.canonical.Cons_varlist @ X2) @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X5) @ X3) @ X1))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X5) @ X3) @ cHOL4.canonical.Nil_monom)) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ cHOL4.canonical.Nil_monom))))))))))) (TringNorm.varlist_insert_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_varlist_insert @ X0) @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X1))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ (cHOL4.ring.ring_R1 @ X0)) @ X4)) @ X3) @ X1)) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ (((cHOL4.ringNorm.r_varlist_insert @ X0) @ X3) @ X1))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_varlist_insert @ X0) @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X1))) @ ((((cHOL4.prelim.compare @ (((cHOL4.prelim.list_compare @ cHOL4.quote.index_compare) @ X3) @ X2)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X1))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RP @ X0) @ (cHOL4.ring.ring_R1 @ X0)) @ (cHOL4.ring.ring_R1 @ X0))) @ X3) @ X1)) @ ((cHOL4.canonical.Cons_varlist @ X2) @ (((cHOL4.ringNorm.r_varlist_insert @ X0) @ X3) @ X1))))))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_varlist_insert @ X0) @ X3) @ cHOL4.canonical.Nil_monom)) @ ((cHOL4.canonical.Cons_varlist @ X3) @ cHOL4.canonical.Nil_monom))))))))) (TringNorm.canonical_sum_scalar_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_scalar @ X0) @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4))) @ (((cHOL4.canonical.Cons_monom @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X2)) @ X3) @ (((cHOL4.ringNorm.r_canonical_sum_scalar @ X0) @ X1) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_scalar @ X0) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4))) @ (((cHOL4.canonical.Cons_monom @ X1) @ X3) @ (((cHOL4.ringNorm.r_canonical_sum_scalar @ X0) @ X1) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_scalar @ X0) @ X1) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) (TringNorm.canonical_sum_scalar2_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0) @ X1) @ (((cHOL4.canonical.Cons_monom @ X2) @ X3) @ X4))) @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X2) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X1) @ X3)) @ (((cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0) @ X1) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4))) @ (((cHOL4.ringNorm.r_varlist_insert @ X0) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X1) @ X3)) @ (((cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0) @ X1) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0) @ X1) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))) (TringNorm.canonical_sum_scalar3_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ X1) @ X2) @ (((cHOL4.canonical.Cons_monom @ X3) @ X4) @ X5))) @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X3)) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X2) @ X4)) @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ X1) @ X2) @ X5)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ X1) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X4) @ X5))) @ ((((cHOL4.ringNorm.r_monom_insert @ X0) @ X1) @ (((cHOL4.prelim.list_merge @ cHOL4.quote.index_lt) @ X2) @ X4)) @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ X1) @ X2) @ X5)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ X1) @ X2) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))))))) (TringNorm.canonical_sum_prod_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ X3)) @ X4)) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((((cHOL4.ringNorm.r_canonical_sum_scalar3 @ X0) @ X1) @ X2) @ X4)) @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ X3) @ X4)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3)) @ X4)) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ (((cHOL4.ringNorm.r_canonical_sum_scalar2 @ X0) @ X2) @ X4)) @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ X3) @ X4)))))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ cHOL4.canonical.Nil_monom) @ X4)) @ cHOL4.canonical.Nil_monom)))))))) (TringNorm.canonical_sum_simplify_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.ring.ring_R0 @ X0))) @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ (cHOL4.ring.ring_R1 @ X0))) @ ((cHOL4.canonical.Cons_varlist @ X2) @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ X3))) @ (((cHOL4.canonical.Cons_monom @ X1) @ X2) @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3))) @ ((cHOL4.canonical.Cons_varlist @ X2) @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ X3)))))))) @ ((cHOL4.min.= @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ cHOL4.canonical.Nil_monom)) @ cHOL4.canonical.Nil_monom)))))) (TringNorm.ivl_aux_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_ivl_aux @ X0) @ X1) @ X2) @ cHOL4.list.NIL)) @ ((cHOL4.quote.varmap_find @ X2) @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_ivl_aux @ X0) @ X1) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))) @ (((cHOL4.ring.ring_RM @ X0) @ ((cHOL4.quote.varmap_find @ X2) @ X1)) @ ((((cHOL4.ringNorm.r_ivl_aux @ X0) @ X1) @ X3) @ X4))))))))))))))) (TringNorm.interp_vl_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_vl @ X0) @ X1) @ cHOL4.list.NIL)) @ (cHOL4.ring.ring_R1 @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_vl @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((((cHOL4.ringNorm.r_ivl_aux @ X0) @ X1) @ X2) @ X3)))))))))))) (TringNorm.interp_m_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_interp_m @ X0) @ X1) @ X2) @ cHOL4.list.NIL)) @ X2)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_interp_m @ X0) @ X1) @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ ((((cHOL4.ringNorm.r_ivl_aux @ X0) @ X1) @ X3) @ X4))))))))))))))) (TringNorm.ics_aux_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ X2) @ cHOL4.canonical.Nil_monom)) @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ X2) @ ((cHOL4.canonical.Cons_varlist @ X3) @ X4))) @ (((cHOL4.ring.ring_RP @ X0) @ X2) @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ (((cHOL4.ringNorm.r_interp_vl @ X0) @ X1) @ X3)) @ X4)))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ X2) @ (((cHOL4.canonical.Cons_monom @ X5) @ X3) @ X4))) @ (((cHOL4.ring.ring_RP @ X0) @ X2) @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ ((((cHOL4.ringNorm.r_interp_m @ X0) @ X1) @ X5) @ X3)) @ X4)))))))))))))))))) (TringNorm.interp_cs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_cs @ X0) @ X1) @ cHOL4.canonical.Nil_monom)) @ (cHOL4.ring.ring_R0 @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_cs @ X0) @ X1) @ ((cHOL4.canonical.Cons_varlist @ X2) @ X3))) @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ (((cHOL4.ringNorm.r_interp_vl @ X0) @ X1) @ X2)) @ X3))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_cs @ X0) @ X1) @ (((cHOL4.canonical.Cons_monom @ X4) @ X2) @ X3))) @ ((((cHOL4.ringNorm.r_ics_aux @ X0) @ X1) @ ((((cHOL4.ringNorm.r_interp_m @ X0) @ X1) @ X4) @ X2)) @ X3))))))))))))))) (TringNorm.spolynom_normalize_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ (cHOL4.canonical.SPvar @ X1))) @ ((cHOL4.canonical.Cons_varlist @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL)) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ (cHOL4.canonical.SPconst @ X2))) @ (((cHOL4.canonical.Cons_monom @ X2) @ cHOL4.list.NIL) @ cHOL4.canonical.Nil_monom))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ ((cHOL4.canonical.SPplus @ X3) @ X4))) @ (((cHOL4.ringNorm.r_canonical_sum_merge @ X0) @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ X3)) @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ X4)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ ((cHOL4.canonical.SPmult @ X3) @ X4))) @ (((cHOL4.ringNorm.r_canonical_sum_prod @ X0) @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ X3)) @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ X4))))))))))))) (TringNorm.spolynom_simplify_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.ringNorm.r_spolynom_simplify @ X0) @ X1)) @ ((cHOL4.ringNorm.r_canonical_sum_simplify @ X0) @ ((cHOL4.ringNorm.r_spolynom_normalize @ X0) @ X1)))))))) (TringNorm.datatype_polynom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((((X0 @ cHOL4.ringNorm.Pvar) @ cHOL4.ringNorm.Pconst) @ cHOL4.ringNorm.Pplus) @ cHOL4.ringNorm.Pmult) @ cHOL4.ringNorm.Popp))))) (TringNorm.polynom_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pvar @ X0)) @ (cHOL4.ringNorm.Pvar @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pconst @ X2)) @ (cHOL4.ringNorm.Pconst @ X3))) @ ((cHOL4.min.= @ X2) @ X3))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.ringNorm.Pplus @ X4) @ X5)) @ ((cHOL4.ringNorm.Pplus @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X6)) @ ((cHOL4.min.= @ X5) @ X7)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.ringNorm.Pmult @ X4) @ X5)) @ ((cHOL4.ringNorm.Pmult @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X6)) @ ((cHOL4.min.= @ X5) @ X7)))))))))))) @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.ringNorm.Popp @ X8)) @ (cHOL4.ringNorm.Popp @ X9))) @ ((cHOL4.min.= @ X8) @ X9))))))))))) (TringNorm.polynom_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pvar @ X1)) @ (cHOL4.ringNorm.Pconst @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pvar @ X1)) @ ((cHOL4.ringNorm.Pplus @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pvar @ X1)) @ ((cHOL4.ringNorm.Pmult @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pvar @ X1)) @ (cHOL4.ringNorm.Popp @ X4)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pconst @ X5)) @ ((cHOL4.ringNorm.Pplus @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pconst @ X5)) @ ((cHOL4.ringNorm.Pmult @ X3) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.ringNorm.Pconst @ X5)) @ (cHOL4.ringNorm.Popp @ X4)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.ringNorm.Pplus @ X3) @ X2)) @ ((cHOL4.ringNorm.Pmult @ X7) @ X6)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.ringNorm.Pplus @ X3) @ X2)) @ (cHOL4.ringNorm.Popp @ X8)))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.ringNorm.Pmult @ X3) @ X2)) @ (cHOL4.ringNorm.Popp @ X8))))))))))))))))))) (TringNorm.polynom_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X6)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X6) @ (cHOL4.ringNorm.Pvar @ X12))) @ ((cHOL4.min.= @ (X7 @ X12)) @ (X4 @ X12)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X13]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X6) @ (cHOL4.ringNorm.Pconst @ X13))) @ ((cHOL4.min.= @ (X8 @ X13)) @ (X3 @ X13)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X6) @ ((cHOL4.ringNorm.Pplus @ X14) @ X15))) @ ((cHOL4.min.= @ ((X9 @ X14) @ X15)) @ ((X2 @ X14) @ X15)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X6) @ ((cHOL4.ringNorm.Pmult @ X14) @ X15))) @ ((cHOL4.min.= @ ((X10 @ X14) @ X15)) @ ((X1 @ X14) @ X15)))))))) @ (cHOL4.bool.! @ (^[X16]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X6) @ (cHOL4.ringNorm.Popp @ X16))) @ ((cHOL4.min.= @ (X11 @ X16)) @ (X0 @ X16))))))))))) @ ((cHOL4.min.= @ ((((((cHOL4.ringNorm.polynom_CASE @ X5) @ X7) @ X8) @ X9) @ X10) @ X11)) @ ((((((cHOL4.ringNorm.polynom_CASE @ X6) @ X4) @ X3) @ X2) @ X1) @ X0)))))))))))))))))))))))))))) (TringNorm.polynom_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.ringNorm.Pvar @ X1))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ (cHOL4.ringNorm.Pconst @ X2))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((cHOL4.ringNorm.Pplus @ X3) @ X4))))))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((cHOL4.ringNorm.Pmult @ X3) @ X4))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ X0) @ (cHOL4.ringNorm.Popp @ X3))))))))))) (TringNorm.polynom_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X5 @ (cHOL4.ringNorm.Pvar @ X6))) @ (X0 @ X6))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ (X5 @ (cHOL4.ringNorm.Pconst @ X7))) @ (X1 @ X7))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (X5 @ ((cHOL4.ringNorm.Pplus @ X8) @ X9))) @ ((((X2 @ X8) @ X9) @ (X5 @ X8)) @ (X5 @ X9)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ (X5 @ ((cHOL4.ringNorm.Pmult @ X8) @ X9))) @ ((((X3 @ X8) @ X9) @ (X5 @ X8)) @ (X5 @ X9)))))))) @ (cHOL4.bool.! @ (^[X10]: ((cHOL4.min.= @ (X5 @ (cHOL4.ringNorm.Popp @ X10))) @ ((X4 @ X10) @ (X5 @ X10)))))))))))))))))))))) (TringNorm.polynom_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.ringNorm.Pvar @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.ringNorm.Pconst @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (X0 @ X4))) @ (X0 @ ((cHOL4.ringNorm.Pplus @ X3) @ X4)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (X0 @ X4))) @ (X0 @ ((cHOL4.ringNorm.Pmult @ X3) @ X4)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (X0 @ (cHOL4.ringNorm.Popp @ X3)))))))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (TringNorm.polynom_normalize_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_cs @ X0) @ X1) @ ((cHOL4.ringNorm.polynom_normalize @ X0) @ X2))) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X2)))))))))) (TringNorm.polynom_simplify_ok,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ringNorm.r_interp_cs @ X0) @ X1) @ ((cHOL4.ringNorm.polynom_simplify @ X0) @ X2))) @ (((cHOL4.ringNorm.interp_p @ X0) @ X1) @ X2)))))))))) (Tring.ring_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.min.= @ X1) @ ((((((^[X3]: (^[X4]: (^[X5]: (^[X6]: (^[X7]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X6) @ X7))))) @ (^[X8]: cHOL4.ind_type.BOTTOM))))))) @ X3) @ X4) @ X5) @ X6) @ X7))))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tring.ring_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_CASE @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4)) @ X5)) @ (((((X5 @ X0) @ X1) @ X2) @ X3) @ X4))))))))))))))) (Tring.ring_size_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_size @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ (X0 @ X2))))))))))))))))) (Tring.ring_R0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X0)))))))))))) (Tring.ring_R1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X1)))))))))))) (Tring.ring_RP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X2)))))))))))) (Tring.ring_RM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X3)))))))))))) (Tring.ring_RN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X4)))))))))))) (Tring.ring_R0_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R0_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ (X0 @ X1)) @ X2) @ X3) @ X4) @ X5))))))))))))))) (Tring.ring_R1_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R1_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ (X0 @ X2)) @ X3) @ X4) @ X5))))))))))))))) (Tring.ring_RP_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RP_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ X2) @ (X0 @ X3)) @ X4) @ X5))))))))))))))) (Tring.ring_RM_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RM_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ (X0 @ X4)) @ X5))))))))))))))) (Tring.ring_RN_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ (X0 @ X5)))))))))))))))) (Tring.is_ring_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ring.is_ring @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ X2)) @ (((cHOL4.ring.ring_RP @ X0) @ X2) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ (((cHOL4.ring.ring_RP @ X0) @ X2) @ X3))) @ (((cHOL4.ring.ring_RP @ X0) @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ X2)) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X2)) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ X3))) @ (((cHOL4.ring.ring_RM @ X0) @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X2)) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ (cHOL4.ring.ring_R0 @ X0)) @ X1)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ (cHOL4.ring.ring_R1 @ X0)) @ X1)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ ((cHOL4.ring.ring_RN @ X0) @ X1))) @ (cHOL4.ring.ring_R0 @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.ring.ring_RP @ X0) @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X3)) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ X3)))))))))))))))))))) (Tring.semi_ring_of_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.ring.semi_ring_of @ X0)) @ ((((cHOL4.semi_ring.semi_ring @ (cHOL4.ring.ring_R0 @ X0)) @ (cHOL4.ring.ring_R1 @ X0)) @ (cHOL4.ring.ring_RP @ X0)) @ (cHOL4.ring.ring_RM @ X0)))))) (Tring.ring_accessors,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X0)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X1)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X2)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4))) @ X4)))))))))))))))) (Tring.ring_fn_updates,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R0_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ (X0 @ X1)) @ X2) @ X3) @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R1_fupd @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ (X0 @ X2)) @ X3) @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RP_fupd @ X6) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ X2) @ (X6 @ X3)) @ X4) @ X5))))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RM_fupd @ X6) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ (X6 @ X4)) @ X5))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X7) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ (X7 @ X5)))))))))))))))))))) (Tring.ring_accfupds,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_R0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ ((cHOL4.ring.ring_RP_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_R0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ ((cHOL4.ring.ring_RM_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_R0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ ((cHOL4.ring.ring_RN_fupd @ X3) @ X0))) @ (cHOL4.ring.ring_R0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_R1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ ((cHOL4.ring.ring_RP_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_R1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ ((cHOL4.ring.ring_RM_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_R1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ ((cHOL4.ring.ring_RN_fupd @ X3) @ X0))) @ (cHOL4.ring.ring_R1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_RP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_RP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ ((cHOL4.ring.ring_RM_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_RP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ ((cHOL4.ring.ring_RN_fupd @ X3) @ X0))) @ (cHOL4.ring.ring_RP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_RM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_RM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ ((cHOL4.ring.ring_RP_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_RM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ ((cHOL4.ring.ring_RN_fupd @ X3) @ X0))) @ (cHOL4.ring.ring_RM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_RN @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ (cHOL4.ring.ring_RN @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ ((cHOL4.ring.ring_RP_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_RN @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ ((cHOL4.ring.ring_RM_fupd @ X2) @ X0))) @ (cHOL4.ring.ring_RN @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ (X1 @ (cHOL4.ring.ring_R0 @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ (X1 @ (cHOL4.ring.ring_R1 @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ ((cHOL4.ring.ring_RP_fupd @ X2) @ X0))) @ (X2 @ (cHOL4.ring.ring_RP @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ ((cHOL4.ring.ring_RM_fupd @ X2) @ X0))) @ (X2 @ (cHOL4.ring.ring_RM @ X0)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ ((cHOL4.ring.ring_RN_fupd @ X3) @ X0))) @ (X3 @ (cHOL4.ring.ring_RN @ X0)))))))))))))))))))))))))))))))) (Tring.ring_fupdfupds,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R0_fupd @ X2) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R0_fupd @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R1_fupd @ X2) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R1_fupd @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RP_fupd @ X4) @ ((cHOL4.ring.ring_RP_fupd @ X3) @ X0))) @ ((cHOL4.ring.ring_RP_fupd @ ((cHOL4.combin.o @ X4) @ X3)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RM_fupd @ X4) @ ((cHOL4.ring.ring_RM_fupd @ X3) @ X0))) @ ((cHOL4.ring.ring_RM_fupd @ ((cHOL4.combin.o @ X4) @ X3)) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X6) @ ((cHOL4.ring.ring_RN_fupd @ X5) @ X0))) @ ((cHOL4.ring.ring_RN_fupd @ ((cHOL4.combin.o @ X6) @ X5)) @ X0))))))))))))) (Tring.ring_fupdfupds_comp,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X1)) @ (cHOL4.ring.ring_R0_fupd @ X0))) @ (cHOL4.ring.ring_R0_fupd @ ((cHOL4.combin.o @ X1) @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X1)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ ((cHOL4.combin.o @ X1) @ X0))) @ X2)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X1)) @ (cHOL4.ring.ring_R1_fupd @ X0))) @ (cHOL4.ring.ring_R1_fupd @ ((cHOL4.combin.o @ X1) @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X1)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ ((cHOL4.combin.o @ X1) @ X0))) @ X2)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ (cHOL4.ring.ring_RP_fupd @ X3))) @ (cHOL4.ring.ring_RP_fupd @ ((cHOL4.combin.o @ X4) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ ((cHOL4.combin.o @ X4) @ X3))) @ X2)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X4)) @ (cHOL4.ring.ring_RM_fupd @ X3))) @ (cHOL4.ring.ring_RM_fupd @ ((cHOL4.combin.o @ X4) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ ((cHOL4.combin.o @ X4) @ X3))) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X6)) @ (cHOL4.ring.ring_RN_fupd @ X5))) @ (cHOL4.ring.ring_RN_fupd @ ((cHOL4.combin.o @ X6) @ X5)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X6)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ ((cHOL4.combin.o @ X6) @ X5))) @ X2)))))))))))))) (Tring.ring_fupdcanon,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R1_fupd @ X2) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ ((cHOL4.ring.ring_R1_fupd @ X2) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RP_fupd @ X3) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ ((cHOL4.ring.ring_RP_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RP_fupd @ X3) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ ((cHOL4.ring.ring_RP_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RM_fupd @ X3) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ ((cHOL4.ring.ring_RM_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RM_fupd @ X3) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ ((cHOL4.ring.ring_RM_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RM_fupd @ X3) @ ((cHOL4.ring.ring_RP_fupd @ X4) @ X0))) @ ((cHOL4.ring.ring_RP_fupd @ X4) @ ((cHOL4.ring.ring_RM_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X5) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R0_fupd @ X1) @ ((cHOL4.ring.ring_RN_fupd @ X5) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X5) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ X0))) @ ((cHOL4.ring.ring_R1_fupd @ X1) @ ((cHOL4.ring.ring_RN_fupd @ X5) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X5) @ ((cHOL4.ring.ring_RP_fupd @ X4) @ X0))) @ ((cHOL4.ring.ring_RP_fupd @ X4) @ ((cHOL4.ring.ring_RN_fupd @ X5) @ X0)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_RN_fupd @ X5) @ ((cHOL4.ring.ring_RM_fupd @ X4) @ X0))) @ ((cHOL4.ring.ring_RM_fupd @ X4) @ ((cHOL4.ring.ring_RN_fupd @ X5) @ X0))))))))))))))))))) (Tring.ring_fupdcanon_comp,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X1)) @ (cHOL4.ring.ring_R0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ (cHOL4.ring.ring_R1_fupd @ X1)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X1)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X1)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ (cHOL4.ring.ring_R0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ (cHOL4.ring.ring_RP_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ (cHOL4.ring.ring_R1_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ (cHOL4.ring.ring_RP_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ (cHOL4.ring.ring_R0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ (cHOL4.ring.ring_RM_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ (cHOL4.ring.ring_R1_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ (cHOL4.ring.ring_RM_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ (cHOL4.ring.ring_RP_fupd @ X4))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ (cHOL4.ring.ring_RM_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ (cHOL4.ring.ring_R0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ (cHOL4.ring.ring_RN_fupd @ X5)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ (cHOL4.ring.ring_R1_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ (cHOL4.ring.ring_RN_fupd @ X5)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_R1_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ (cHOL4.ring.ring_RP_fupd @ X4))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ (cHOL4.ring.ring_RN_fupd @ X5)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RP_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ X2))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ (cHOL4.ring.ring_RM_fupd @ X4))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X4)) @ (cHOL4.ring.ring_RN_fupd @ X5)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X4)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RM_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.ring.ring_RN_fupd @ X5)) @ X2)))))))))))))))))))) (Tring.ring_component_equality,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ring.ring_R0 @ X0)) @ (cHOL4.ring.ring_R0 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ring.ring_R1 @ X0)) @ (cHOL4.ring.ring_R1 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ring.ring_RP @ X0)) @ (cHOL4.ring.ring_RP @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.ring.ring_RM @ X0)) @ (cHOL4.ring.ring_RM @ X1))) @ ((cHOL4.min.= @ (cHOL4.ring.ring_RN @ X0)) @ (cHOL4.ring.ring_RN @ X1)))))))))))) (Tring.ring_updates_eq_literal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X5)) @ X0)))))) @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X5)) @ cHOL4.bool.ARB))))))))))))))))))) (Tring.ring_literal_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X0) @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X5)) @ cHOL4.bool.ARB))))))))))))))))))) (Tring.FORALL_ring,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X0 @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X5)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X6)) @ cHOL4.bool.ARB)))))))))))))))))))) (Tring.EXISTS_ring,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: (X0 @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X5)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X6)) @ cHOL4.bool.ARB)))))))))))))))))))) (Tring.ring_literal_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X0)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X4)) @ cHOL4.bool.ARB)))))) @ ((cHOL4.ring.ring_R0_fupd @ (cHOL4.combin.K @ X5)) @ ((cHOL4.ring.ring_R1_fupd @ (cHOL4.combin.K @ X6)) @ ((cHOL4.ring.ring_RP_fupd @ (cHOL4.combin.K @ X7)) @ ((cHOL4.ring.ring_RM_fupd @ (cHOL4.combin.K @ X8)) @ ((cHOL4.ring.ring_RN_fupd @ (cHOL4.combin.K @ X9)) @ cHOL4.bool.ARB))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X7)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X8)) @ ((cHOL4.min.= @ X4) @ X9))))))))))))))))))))))))))) (Tring.datatype_ring,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.DATATYPE @ ((((((X1 @ X0) @ X6) @ X5) @ X2) @ X4) @ X3))))))))))))))))) (Tring.ring_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((((cHOL4.ring.ring @ X0) @ X1) @ X2) @ X3) @ X4)) @ (((((cHOL4.ring.ring @ X5) @ X6) @ X7) @ X8) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X6)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X7)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X8)) @ ((cHOL4.min.= @ X4) @ X9))))))))))))))))))))))))))) (Tring.ring_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ (((((cHOL4.ring.ring @ X4) @ X5) @ X6) @ X7) @ X8))) @ ((cHOL4.min.= @ (((((X3 @ X4) @ X5) @ X6) @ X7) @ X8)) @ (((((X0 @ X4) @ X5) @ X6) @ X7) @ X8))))))))))))))) @ ((cHOL4.min.= @ ((cHOL4.ring.ring_CASE @ X1) @ X3)) @ ((cHOL4.ring.ring_CASE @ X2) @ X0)))))))))))) (Tring.ring_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.min.= @ X0) @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))))))))))))))) (Tring.ring_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ (X1 @ (((((cHOL4.ring.ring @ X2) @ X3) @ X4) @ X5) @ X6))) @ (((((X0 @ X2) @ X3) @ X4) @ X5) @ X6))))))))))))))))) (Tring.ring_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (X0 @ (((((cHOL4.ring.ring @ X1) @ X2) @ X3) @ X4) @ X5))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (X0 @ X6))))))) (Tring.plus_sym,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ X2)) @ (((cHOL4.ring.ring_RP @ X0) @ X2) @ X1)))))))))) (Tring.plus_assoc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ (((cHOL4.ring.ring_RP @ X0) @ X2) @ X3))) @ (((cHOL4.ring.ring_RP @ X0) @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ X2)) @ X3)))))))))))) (Tring.mult_sym,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X2)) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ X1)))))))))) (Tring.mult_assoc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ X3))) @ (((cHOL4.ring.ring_RM @ X0) @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X2)) @ X3)))))))))))) (Tring.plus_zero_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ (cHOL4.ring.ring_R0 @ X0)) @ X1)) @ X1))))))) (Tring.mult_one_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ (cHOL4.ring.ring_R1 @ X0)) @ X1)) @ X1))))))) (Tring.opp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ ((cHOL4.ring.ring_RN @ X0) @ X1))) @ (cHOL4.ring.ring_R0 @ X0)))))))) (Tring.distr_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.ring.ring_RP @ X0) @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X3)) @ (((cHOL4.ring.ring_RM @ X0) @ X2) @ X3))))))))))))) (Tring.plus_zero_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RP @ X0) @ X1) @ (cHOL4.ring.ring_R0 @ X0))) @ X1))))))) (Tring.mult_zero_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ (cHOL4.ring.ring_R0 @ X0)) @ X1)) @ (cHOL4.ring.ring_R0 @ X0)))))))) (Tring.mult_zero_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ (cHOL4.ring.ring_R0 @ X0))) @ (cHOL4.ring.ring_R0 @ X0)))))))) (Tring.ring_is_semi_ring,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.semi_ring.is_semi_ring @ (cHOL4.ring.semi_ring_of @ X0)))))) (Tring.mult_one_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ (cHOL4.ring.ring_R1 @ X0))) @ X1))))))) (Tring.neg_mult,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.ring.is_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.ring.ring_RM @ X0) @ ((cHOL4.ring.ring_RN @ X0) @ X1)) @ X2)) @ ((cHOL4.ring.ring_RN @ X0) @ (((cHOL4.ring.ring_RM @ X0) @ X1) @ X2))))))))))) (Tsat.AND_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X0) @ X1)) @ X2)) @ ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ X1) @ X2)))))))))) (Tsat.NOT_NOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X0)))) (Tsat.AND_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ X0)) @ cHOL4.bool.F)))) (Tsat.AND_INV_IMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ X0) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F))))) (Tsat.OR_DUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X1) @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F)))))))) (Tsat.OR_DUAL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X1) @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X1) @ cHOL4.bool.F)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F)))))))) (Tsat.OR_DUAL3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ X0))) @ cHOL4.bool.F)) @ ((cHOL4.min.==> @ X1) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F)))))))) (Tsat.AND_INV2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F)) @ ((cHOL4.min.==> @ ((cHOL4.min.==> @ X0) @ cHOL4.bool.F)) @ cHOL4.bool.F))))) (Tsat.NOT_ELIM2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ cHOL4.bool.F)) @ X0)))) (Tsat.EQT_Imp1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ X0) @ ((cHOL4.min.= @ X0) @ cHOL4.bool.T))))) (Tsat.EQF_Imp1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.bool.F))))) (Tsat.dc_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.min.= @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ ((cHOL4.bool.\/ @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X1) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X2)))) @ ((cHOL4.bool.\/ @ X0) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X2)))))))))))))) (Tsat.dc_conj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.bool./\ @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ X2))) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X2)))))))))))) (Tsat.dc_disj,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.bool.\/ @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ (cHOL4.bool.~ @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool.\/ @ X1) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X2))))))))))))) (Tsat.dc_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ ((cHOL4.min.==> @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X2) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X2))))))))))))) (Tsat.dc_neg,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ (cHOL4.bool.~ @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ (cHOL4.bool.~ @ X1))))))))) (Tsat.dc_cond,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ X3) @ (((cHOL4.bool.COND @ X2) @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool.\/ @ X2) @ (cHOL4.bool.~ @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ X3) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X1)) @ (cHOL4.bool.~ @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X2)) @ ((cHOL4.bool.\/ @ X1) @ (cHOL4.bool.~ @ X3)))) @ ((cHOL4.bool.\/ @ X2) @ ((cHOL4.bool.\/ @ X0) @ (cHOL4.bool.~ @ X3))))))))))))))))) (Tsat.pth_ni1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.==> @ X1) @ X0))) @ X1)))))) (Tsat.pth_ni2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.==> @ X1) @ X0))) @ (cHOL4.bool.~ @ X0))))))) (Tsat.pth_no1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X1) @ X0))) @ (cHOL4.bool.~ @ X1))))))) (Tsat.pth_no2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X1) @ X0))) @ (cHOL4.bool.~ @ X0))))))) (Tsat.pth_an1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X1) @ X0)) @ X1)))))) (Tsat.pth_an2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ X1) @ X0)) @ X0)))))) (Tsat.pth_nn,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.bool.~ @ X0))) @ X0)))) (Tsemi_ring.semi_ring_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.min.= @ X1) @ (((((^[X3]: (^[X4]: (^[X5]: (^[X6]: (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6)))) @ (^[X7]: cHOL4.ind_type.BOTTOM)))))) @ X3) @ X4) @ X5) @ X6))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Tsemi_ring.semi_ring_case_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_CASE @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3)) @ X4)) @ ((((X4 @ X0) @ X1) @ X2) @ X3))))))))))))) (Tsemi_ring.semi_ring_size_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_size @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.+ @ (X0 @ X1)) @ (X0 @ X2))))))))))))))) (Tsemi_ring.semi_ring_SR0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X0)))))))))) (Tsemi_ring.semi_ring_SR1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X1)))))))))) (Tsemi_ring.semi_ring_SRP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X2)))))))))) (Tsemi_ring.semi_ring_SRM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X3)))))))))) (Tsemi_ring.semi_ring_SR0_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ (X0 @ X1)) @ X2) @ X3) @ X4))))))))))))) (Tsemi_ring.semi_ring_SR1_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ (X0 @ X2)) @ X3) @ X4))))))))))))) (Tsemi_ring.semi_ring_SRP_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ (X0 @ X3)) @ X4))))))))))))) (Tsemi_ring.semi_ring_SRM_fupd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ (X0 @ X4)))))))))))))) (Tsemi_ring.is_semi_ring_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ X3))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)) @ X1)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0)) @ X1)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)) @ X1)) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X3)))))))))))))))))))) (Tsemi_ring.semi_ring_accessors,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3))) @ X3))))))))))))) (Tsemi_ring.semi_ring_fn_updates,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ (X0 @ X1)) @ X2) @ X3) @ X4))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ (X0 @ X2)) @ X3) @ X4))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X5) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ (X5 @ X3)) @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X5) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ (X5 @ X4))))))))))))))))) (Tsemi_ring.semi_ring_accfupds,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X2) @ X0))) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X2) @ X0))) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X2) @ X0))) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X2) @ X0))) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ (cHOL4.semi_ring.semi_ring_SRP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ (cHOL4.semi_ring.semi_ring_SRP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X2) @ X0))) @ (cHOL4.semi_ring.semi_ring_SRP @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ (cHOL4.semi_ring.semi_ring_SRM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ (cHOL4.semi_ring.semi_ring_SRM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X2) @ X0))) @ (cHOL4.semi_ring.semi_ring_SRM @ X0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ (X1 @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ (X1 @ (cHOL4.semi_ring.semi_ring_SR1 @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X2) @ X0))) @ (X2 @ (cHOL4.semi_ring.semi_ring_SRP @ X0)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X2) @ X0))) @ (X2 @ (cHOL4.semi_ring.semi_ring_SRM @ X0))))))))))))))))))))))) (Tsemi_ring.semi_ring_fupdfupds,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X2) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X2) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ ((cHOL4.combin.o @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X4) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X3) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ ((cHOL4.combin.o @ X4) @ X3)) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X4) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ ((cHOL4.combin.o @ X4) @ X3)) @ X0)))))))))))) (Tsemi_ring.semi_ring_fupdfupds_comp,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X1)) @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0))) @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ ((cHOL4.combin.o @ X1) @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X1)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ ((cHOL4.combin.o @ X1) @ X0))) @ X2)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X1)) @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0))) @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ ((cHOL4.combin.o @ X1) @ X0)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X1)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ ((cHOL4.combin.o @ X1) @ X0))) @ X2)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X4)) @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3))) @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ ((cHOL4.combin.o @ X4) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ ((cHOL4.combin.o @ X4) @ X3))) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X4)) @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3))) @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ ((cHOL4.combin.o @ X4) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ ((cHOL4.combin.o @ X4) @ X3))) @ X2))))))))))))) (Tsemi_ring.semi_ring_fupdcanon,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X2) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X2) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X3) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X3) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ X1) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ X0)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ X1) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ X0)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X4) @ X0))) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ X4) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ X3) @ X0))))))))))))))) (Tsemi_ring.semi_ring_fupdcanon_comp,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X1)) @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X1)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X1)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X1)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR0_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SR1_fupd @ X0)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ X2))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X4))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X4)) @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X4)) @ X2))) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRP_fupd @ X4)) @ ((cHOL4.combin.o @ (cHOL4.semi_ring.semi_ring_SRM_fupd @ X3)) @ X2)))))))))))))))) (Tsemi_ring.semi_ring_component_equality,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)) @ (cHOL4.semi_ring.semi_ring_SR0 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SR1 @ X0)) @ (cHOL4.semi_ring.semi_ring_SR1 @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRP @ X0)) @ (cHOL4.semi_ring.semi_ring_SRP @ X1))) @ ((cHOL4.min.= @ (cHOL4.semi_ring.semi_ring_SRM @ X0)) @ (cHOL4.semi_ring.semi_ring_SRM @ X1))))))))))) (Tsemi_ring.semi_ring_updates_eq_literal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X4)) @ X0))))) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X4)) @ cHOL4.bool.ARB)))))))))))))))) (Tsemi_ring.semi_ring_literal_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X4)) @ cHOL4.bool.ARB)))))))))))))))) (Tsemi_ring.FORALL_semi_ring,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (X0 @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X5)) @ cHOL4.bool.ARB))))))))))))))))) (Tsemi_ring.EXISTS_semi_ring,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (X0 @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X3)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X5)) @ cHOL4.bool.ARB))))))))))))))))) (Tsemi_ring.semi_ring_literal_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X0)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X1)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X2)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X3)) @ cHOL4.bool.ARB))))) @ ((cHOL4.semi_ring.semi_ring_SR0_fupd @ (cHOL4.combin.K @ X4)) @ ((cHOL4.semi_ring.semi_ring_SR1_fupd @ (cHOL4.combin.K @ X5)) @ ((cHOL4.semi_ring.semi_ring_SRP_fupd @ (cHOL4.combin.K @ X6)) @ ((cHOL4.semi_ring.semi_ring_SRM_fupd @ (cHOL4.combin.K @ X7)) @ cHOL4.bool.ARB)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X6)) @ ((cHOL4.min.= @ X3) @ X7)))))))))))))))))))))) (Tsemi_ring.datatype_semi_ring,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.DATATYPE @ (((((X1 @ X0) @ X5) @ X4) @ X2) @ X3))))))))))))))) (Tsemi_ring.semi_ring_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((((cHOL4.semi_ring.semi_ring @ X0) @ X1) @ X2) @ X3)) @ ((((cHOL4.semi_ring.semi_ring @ X4) @ X5) @ X6) @ X7))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X6)) @ ((cHOL4.min.= @ X3) @ X7)))))))))))))))))))))) (Tsemi_ring.semi_ring_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X2) @ ((((cHOL4.semi_ring.semi_ring @ X4) @ X5) @ X6) @ X7))) @ ((cHOL4.min.= @ ((((X3 @ X4) @ X5) @ X6) @ X7)) @ ((((X0 @ X4) @ X5) @ X6) @ X7))))))))))))) @ ((cHOL4.min.= @ ((cHOL4.semi_ring.semi_ring_CASE @ X1) @ X3)) @ ((cHOL4.semi_ring.semi_ring_CASE @ X2) @ X0)))))))))))) (Tsemi_ring.semi_ring_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.min.= @ X0) @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))))))))))))) (Tsemi_ring.semi_ring_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (X1 @ ((((cHOL4.semi_ring.semi_ring @ X2) @ X3) @ X4) @ X5))) @ ((((X0 @ X2) @ X3) @ X4) @ X5))))))))))))))) (Tsemi_ring.semi_ring_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (X0 @ ((((cHOL4.semi_ring.semi_ring @ X1) @ X2) @ X3) @ X4))))))))))) @ (cHOL4.bool.! @ (^[X5]: (X0 @ X5))))))) (Tsemi_ring.plus_sym,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ X1)))))))))) (Tsemi_ring.plus_assoc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ X3)))))))))))) (Tsemi_ring.mult_sym,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X1)))))))))) (Tsemi_ring.mult_assoc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ X3)))))))))))) (Tsemi_ring.plus_zero_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)) @ X1)) @ X1))))))) (Tsemi_ring.mult_one_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0)) @ X1)) @ X1))))))) (Tsemi_ring.mult_zero_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)) @ X1)) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)))))))) (Tsemi_ring.distr_left,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X3))))))))))))) (Tsemi_ring.plus_zero_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))) @ X1))))))) (Tsemi_ring.mult_one_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ (cHOL4.semi_ring.semi_ring_SR1 @ X0))) @ X1))))))) (Tsemi_ring.mult_zero_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0))) @ (cHOL4.semi_ring.semi_ring_SR0 @ X0)))))))) (Tsemi_ring.distr_right,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ X3))) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X3))))))))))))) (Tsemi_ring.plus_rotate,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X2) @ X3)) @ X1)))))))))))) (Tsemi_ring.plus_permute,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ (((cHOL4.semi_ring.semi_ring_SRP @ X0) @ X1) @ X3)) @ X2)))))))))))) (Tsemi_ring.mult_rotate,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X2) @ X3)) @ X1)))))))))))) (Tsemi_ring.mult_permute,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.semi_ring.is_semi_ring @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ (((cHOL4.semi_ring.semi_ring_SRM @ X0) @ X1) @ X3)) @ X2)))))))))))) (Tseq.tends_num_real,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.seq.--> @ X0) @ X1)) @ (((cHOL4.nets.tends @ X0) @ X1) @ ((cHOL4.pair.|comma| @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ cHOL4.arithmetic.>=)))))))) (Tseq.convergent,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.convergent @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.seq.--> @ X0) @ X1))))))) (Tseq.cauchy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.cauchy @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.>= @ X3) @ X2)) @ ((cHOL4.arithmetic.>= @ X4) @ X2))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X3)) @ (X0 @ X4)))) @ X1))))))))))))))) (Tseq.lim,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.lim @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.seq.--> @ X0) @ X1))))))) (Tseq.subseq,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.subseq @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.prim_rec.< @ (X0 @ X1)) @ (X0 @ X2))))))))))) (Tseq.mono,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.mono @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.real.real_lte @ (X0 @ X1)) @ (X0 @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.real.real_ge @ (X0 @ X1)) @ (X0 @ X2)))))))))))) (Tseq.sums,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.seq.--> @ (^[X2]: ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X2)) @ X0))) @ X1))))))) (Tseq.summable,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.seq.sums @ X0) @ X1))))))) (Tseq.suminf,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.suminf @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.seq.sums @ X0) @ X1))))))) (Tseq.SEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.seq.--> @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X4) @ X3)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ (X0 @ X4)) @ X1))) @ X2))))))))))))))) (Tseq.SEQ_CONST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.seq.--> @ (^[X1]: X0)) @ X0)))) (Tseq.SEQ_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ X2) @ X3))) @ ((cHOL4.seq.--> @ (^[X4]: ((cHOL4.realax.real_add @ (X0 @ X4)) @ (X2 @ X4)))) @ ((cHOL4.realax.real_add @ X1) @ X3)))))))))))) (Tseq.SEQ_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ X2) @ X3))) @ ((cHOL4.seq.--> @ (^[X4]: ((cHOL4.realax.real_mul @ (X0 @ X4)) @ (X2 @ X4)))) @ ((cHOL4.realax.real_mul @ X1) @ X3)))))))))))) (Tseq.SEQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ (^[X2]: (cHOL4.realax.real_neg @ (X0 @ X2)))) @ (cHOL4.realax.real_neg @ X1)))))))) (Tseq.SEQ_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.seq.--> @ (^[X2]: (cHOL4.realax.inv @ (X0 @ X2)))) @ (cHOL4.realax.inv @ X1)))))))) (Tseq.SEQ_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ X2) @ X3))) @ ((cHOL4.seq.--> @ (^[X4]: ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X2 @ X4)))) @ ((cHOL4.real.real_sub @ X1) @ X3)))))))))))) (Tseq.SEQ_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X2) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.seq.--> @ (^[X4]: ((cHOL4.real./ @ (X0 @ X4)) @ (X2 @ X4)))) @ ((cHOL4.real./ @ X1) @ X3)))))))))))) (Tseq.SEQ_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Tseq.SEQ_LIM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.convergent @ X0)) @ ((cHOL4.seq.--> @ X0) @ (cHOL4.seq.lim @ X0)))))) (Tseq.SUBSEQ_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.subseq @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.prim_rec.< @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1))))))))) (Tseq.MONO_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.mono @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_ge @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (X0 @ (cHOL4.num.SUC @ X1))) @ (X0 @ X1))))))))) (Tseq.MAX_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ (X0 @ X3))) @ X2))))))))))) (Tseq.SEQ_BOUNDED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ (X0 @ X2))) @ X1))))))))) (Tseq.SEQ_BOUNDED_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ (X0 @ X3))) @ ((cHOL4.real.real_lte @ (X0 @ X3)) @ X2))))) @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0))))))))) (Tseq.SEQ_CBOUNDED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.cauchy @ X0)) @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0))))) (Tseq.SEQ_ICONV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X1) @ X2)) @ ((cHOL4.real.real_ge @ (X0 @ X1)) @ (X0 @ X2))))))))) @ (cHOL4.seq.convergent @ X0))))) (Tseq.SEQ_NEG_CONV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.convergent @ X0)) @ (cHOL4.seq.convergent @ (^[X1]: (cHOL4.realax.real_neg @ (X0 @ X1)))))))) (Tseq.SEQ_NEG_BOUNDED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ (^[X1]: (cHOL4.realax.real_neg @ (X0 @ X1))))) @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0))))) (Tseq.SEQ_BCONV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0)) @ (cHOL4.seq.mono @ X0))) @ (cHOL4.seq.convergent @ X0))))) (Tseq.SEQ_MONOSUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.seq.subseq @ X1)) @ (cHOL4.seq.mono @ (^[X2]: (X0 @ (X1 @ X2)))))))))) (Tseq.SEQ_SBOUNDED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ X0)) @ ((cHOL4.nets.bounded @ ((cHOL4.pair.|comma| @ cHOL4.topology.mr1) @ cHOL4.arithmetic.>=)) @ (^[X2]: (X0 @ (X1 @ X2)))))))))) (Tseq.SEQ_SUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.subseq @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.arithmetic.<= @ X1) @ (X0 @ X1)))))))) (Tseq.SEQ_DIRECT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.subseq @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.>= @ X3) @ X1)) @ ((cHOL4.arithmetic.>= @ (X0 @ X3)) @ X2)))))))))))) (Tseq.SEQ_CAUCHY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.cauchy @ X0)) @ (cHOL4.seq.convergent @ X0))))) (Tseq.SEQ_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X1) @ X3)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X5) @ X4)) @ ((cHOL4.real.real_lte @ (X0 @ X5)) @ (X1 @ X5)))))))))) @ ((cHOL4.real.real_lte @ X2) @ X3))))))))))) (Tseq.SEQ_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ (^[X2]: (X0 @ (cHOL4.num.SUC @ X2)))) @ X1))))))) (Tseq.SEQ_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.seq.--> @ (^[X1]: (cHOL4.real.abs @ (X0 @ X1)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.seq.--> @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tseq.SEQ_ABS_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.seq.--> @ X0) @ X1)) @ ((cHOL4.seq.--> @ (^[X2]: (cHOL4.real.abs @ (X0 @ X2)))) @ (cHOL4.real.abs @ X1)))))))) (Tseq.SEQ_INV0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ X2)) @ ((cHOL4.real.real_gt @ (X0 @ X3)) @ X1))))))))) @ ((cHOL4.seq.--> @ (^[X3]: (cHOL4.realax.inv @ (X0 @ X3)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tseq.SEQ_POWER_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.seq.--> @ (^[X1]: ((cHOL4.real.pow @ (cHOL4.real.abs @ X0)) @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tseq.SEQ_POWER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.seq.--> @ (^[X1]: ((cHOL4.real.pow @ X0) @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tseq.NEST_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_ge @ (X0 @ (cHOL4.num.SUC @ X2))) @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X1 @ (cHOL4.num.SUC @ X2))) @ (X1 @ X2))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X1 @ X2))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ X3)))) @ ((cHOL4.seq.--> @ X0) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ X4) @ (X1 @ X2))))) @ ((cHOL4.seq.--> @ X1) @ X4)))))))))))))) (Tseq.NEST_LEMMA_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_ge @ (X0 @ (cHOL4.num.SUC @ X2))) @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X1 @ (cHOL4.num.SUC @ X2))) @ (X1 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.seq.--> @ (^[X2]: ((cHOL4.real.real_sub @ (X0 @ X2)) @ (X1 @ X2)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ X3)))) @ ((cHOL4.seq.--> @ X0) @ X3))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ X3) @ (X1 @ X2))))) @ ((cHOL4.seq.--> @ X1) @ X3))))))))))) (Tseq.BOLZANO_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ ((cHOL4.bool./\ @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))) @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X3)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X4) @ X2)) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ X2) @ X1)) @ X5)))) @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X1) @ X2)) @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tseq.SUM_SUMMABLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.seq.sums @ X0) @ X1)) @ (cHOL4.seq.summable @ X0))))))) (Tseq.SUMMABLE_SUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.seq.sums @ X0) @ (cHOL4.seq.suminf @ X0)))))) (Tseq.SUM_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.min.= @ X1) @ (cHOL4.seq.suminf @ X0)))))))) (Tseq.SER_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.seq.sums @ X0) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)))))))) (Tseq.SER_POS_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X2))))))) @ ((cHOL4.real.real_lte @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)) @ (cHOL4.seq.suminf @ X0)))))))) (Tseq.SER_POS_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X2))))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)) @ (cHOL4.seq.suminf @ X0)))))))) (Tseq.SER_GROUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.seq.sums @ (^[X2]: ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ X2) @ X1)) @ X1)) @ X0))) @ (cHOL4.seq.suminf @ X0)))))))) (Tseq.SER_PAIR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.seq.suminf @ X0)))))) (Tseq.SER_OFFSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.seq.sums @ (^[X2]: (X0 @ ((cHOL4.arithmetic.+ @ X2) @ X1)))) @ ((cHOL4.real.real_sub @ (cHOL4.seq.suminf @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0))))))))) (Tseq.SER_POS_LT_PAIR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_add @ (X0 @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)))) @ (X0 @ ((cHOL4.arithmetic.+ @ X1) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)) @ (cHOL4.seq.suminf @ X0)))))))) (Tseq.SER_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.seq.sums @ X2) @ X3))) @ ((cHOL4.seq.sums @ (^[X4]: ((cHOL4.realax.real_add @ (X0 @ X4)) @ (X2 @ X4)))) @ ((cHOL4.realax.real_add @ X1) @ X3)))))))))))) (Tseq.SER_CMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.seq.sums @ (^[X3]: ((cHOL4.realax.real_mul @ X2) @ (X0 @ X3)))) @ ((cHOL4.realax.real_mul @ X2) @ X1)))))))))) (Tseq.SER_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.seq.sums @ (^[X2]: (cHOL4.realax.real_neg @ (X0 @ X2)))) @ (cHOL4.realax.real_neg @ X1)))))))) (Tseq.SER_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.seq.sums @ X2) @ X3))) @ ((cHOL4.seq.sums @ (^[X4]: ((cHOL4.real.real_sub @ (X0 @ X4)) @ (X2 @ X4)))) @ ((cHOL4.real.real_sub @ X1) @ X3)))))))))))) (Tseq.SER_CDIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.seq.sums @ (^[X3]: ((cHOL4.real./ @ (X0 @ X3)) @ X2))) @ ((cHOL4.real./ @ X1) @ X2)))))))))) (Tseq.SER_CAUCHY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X0))) @ X1))))))))))))))) (Tseq.SER_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.seq.--> @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Tseq.SER_COMPAR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (X0 @ X3))) @ (X1 @ X3)))))))) @ (cHOL4.seq.summable @ X1))) @ (cHOL4.seq.summable @ X0))))))) (Tseq.SER_COMPARA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (X0 @ X3))) @ (X1 @ X3)))))))) @ (cHOL4.seq.summable @ X1))) @ (cHOL4.seq.summable @ (^[X4]: (cHOL4.real.abs @ (X0 @ X4)))))))))) (Tseq.SER_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.seq.summable @ X1)))) @ ((cHOL4.real.real_lte @ (cHOL4.seq.suminf @ X0)) @ (cHOL4.seq.suminf @ X1)))))))) (Tseq.SER_LE2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (X0 @ X2))) @ (X1 @ X2))))) @ (cHOL4.seq.summable @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.seq.suminf @ X0)) @ (cHOL4.seq.suminf @ X1))))))))) (Tseq.SER_ACONV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ (^[X1]: (cHOL4.real.abs @ (X0 @ X1))))) @ (cHOL4.seq.summable @ X0))))) (Tseq.SER_ABS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.seq.summable @ (^[X1]: (cHOL4.real.abs @ (X0 @ X1))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.seq.suminf @ X0))) @ (cHOL4.seq.suminf @ (^[X1]: (cHOL4.real.abs @ (X0 @ X1))))))))) (Tseq.GP_FINITE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ (^[X1]: ((cHOL4.real.pow @ X0) @ X1)))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ X0) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.real.real_sub @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Tseq.GP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.real.pow @ X0) @ X1))) @ (cHOL4.realax.inv @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))))) (Tseq.ABS_NEG_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X1)) @ ((cHOL4.realax.real_mul @ X0) @ (cHOL4.real.abs @ X2)))) @ ((cHOL4.min.= @ X1) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))) (Tseq.SER_RATIO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ X2)) @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (X0 @ (cHOL4.num.SUC @ X3)))) @ ((cHOL4.realax.real_mul @ X1) @ (cHOL4.real.abs @ (X0 @ X3))))))))) @ (cHOL4.seq.summable @ X0))))))))) (Tseq.LE_SEQ_IMP_LE_LIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ X0) @ (X2 @ X3))))) @ ((cHOL4.seq.--> @ X2) @ X1))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))))) (Tseq.SEQ_LE_IMP_LIM_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ (X2 @ X3)) @ X0)))) @ ((cHOL4.seq.--> @ X2) @ X1))) @ ((cHOL4.real.real_lte @ X1) @ X0))))))))) (Tseq.SEQ_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X0 @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.seq.--> @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (X0 @ X2)) @ X1))))))))) (Tseq.SEQ_LE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (X0 @ X2))))) @ ((cHOL4.seq.--> @ X0) @ X1))) @ ((cHOL4.real.real_lte @ X1) @ (X0 @ X2)))))))))) (Tset_relation.domain_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.domain @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)))))))))) (Tset_relation.range_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.range @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X0)))))))))) (Tset_relation.rrestrict_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.rrestrict @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1)))))))))))))) (Tset_relation.rcomp_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.rcomp @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X1))))))))))))))) (Tset_relation.strict_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.strict @ X0)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2)))))))))))) (Tset_relation.univ_reln_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.univ_reln @ X0)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X0))))))))))) (Tset_relation.finite_prefixes_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X0)))))))))))))) (Tset_relation.tc_def,((cHOL4.min.= @ cHOL4.set_relation.tc) @ (^[X0]: (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ (X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)))))))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (X2 @ ((cHOL4.pair.|comma| @ X3) @ X5))) @ (X2 @ ((cHOL4.pair.|comma| @ X5) @ X4)))))))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))))) (Tset_relation.acyclic_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.acyclic @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X1)) @ (cHOL4.set_relation.tc @ X0))))))))) (Tset_relation.maximal_elements_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1))) @ ((cHOL4.min.= @ X2) @ X3)))))))))))))) (Tset_relation.minimal_elements_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))) @ ((cHOL4.min.= @ X2) @ X3)))))))))))))) (Tset_relation.reflexive_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.reflexive @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X2)) @ X0)))))))))) (Tset_relation.irreflexive_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.irreflexive @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X2)) @ X0))))))))))) (Tset_relation.transitive_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.transitive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0)))))))))))) (Tset_relation.antisym_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.antisym @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ X0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tset_relation.partial_order_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.transitive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.reflexive @ X0) @ X1)) @ (cHOL4.set_relation.antisym @ X0))))))))))) (Tset_relation.linear_order_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.linear_order @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.transitive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.antisym @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X0))))))))))))))))) (Tset_relation.strict_linear_order_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.strict_linear_order @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.transitive @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X2)) @ X0))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X0))))))))))))))))) (Tset_relation.chain_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.chain @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X3) @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))))))))))))) (Tset_relation.upper_bounds_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.upper_bounds @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.set_relation.range @ X1))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)))))))))))))) (Tset_relation.fchains_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.fchains @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.chain @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.chain @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X2) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.DIFF @ ((cHOL4.set_relation.upper_bounds @ X2) @ X0)) @ X2)) @ X1)) @ cHOL4.pred_set.EMPTY))))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.CHOICE @ ((cHOL4.pred_set.DIFF @ ((cHOL4.set_relation.upper_bounds @ X2) @ X0)) @ X2))) @ ((cHOL4.set_relation.minimal_elements @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.DIFF @ ((cHOL4.set_relation.upper_bounds @ X2) @ X0)) @ X2)) @ X1)) @ X0)))))))))))))) (Tset_relation.per_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.per @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.BIGUNION @ X1)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ cHOL4.pred_set.EMPTY) @ X1))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))))) @ ((cHOL4.pred_set.DISJOINT @ X2) @ X3)))))))))))))) (Tset_relation.per_restrict_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.per_restrict @ X0) @ X1)) @ ((cHOL4.pred_set.DELETE @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.INTER @ X2) @ X1)) @ ((cHOL4.bool.IN @ X2) @ X0))))) @ cHOL4.pred_set.EMPTY))))))) (Tset_relation.all_choices_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.all_choices @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.IMAGE @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ (X1 @ X2)) @ X2))))))))))) (Tset_relation.num_order_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.num_order @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.arithmetic.<= @ (X0 @ X2)) @ (X0 @ X3))))))))))))))) (Tset_relation.get_min_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.set_relation.get_min @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.bool.COND @ (cHOL4.pred_set.SING @ X3)) @ (cHOL4.option.SOME @ (cHOL4.pred_set.CHOICE @ X3))) @ cHOL4.option.NONE))) @ ((cHOL4.set_relation.minimal_elements @ ((cHOL4.set_relation.minimal_elements @ X1) @ X2)) @ X0)))))))))) (Tset_relation.nth_min_tupled_primitive_def,((cHOL4.min.= @ cHOL4.set_relation.nth_min_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ ((cHOL4.set_relation.get_min @ X4) @ ((cHOL4.pair.|comma| @ X3) @ X2)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ cHOL4.option.NONE)))) @ ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.DELETE @ X3) @ (cHOL4.option.THE @ X5))) @ X2)) @ X1))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (cHOL4.num.SUC @ X1))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X4]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X9]: (^[X10]: ((cHOL4.pair.pair_CASE @ X9) @ (^[X3]: (^[X2]: (((cHOL4.arithmetic.num_CASE @ X10) @ (cHOL4.combin.I @ ((cHOL4.set_relation.get_min @ X4) @ ((cHOL4.pair.|comma| @ X3) @ X2)))) @ (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.LET @ (^[X5]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X5) @ cHOL4.option.NONE)) @ cHOL4.option.NONE) @ (X6 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.DELETE @ X3) @ (cHOL4.option.THE @ X5))) @ X2)) @ X1)))))) @ ((cHOL4.set_relation.get_min @ X4) @ ((cHOL4.pair.|comma| @ X3) @ X2)))))))))))))))))))) (Tset_relation.nth_min_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.set_relation.nth_min @ X0) @ X1) @ X2)) @ (cHOL4.set_relation.nth_min_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Tset_relation.reln_to_rel_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.reln_to_rel @ X0)) @ (^[X1]: (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0))))))) (Tset_relation.rel_to_reln_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.rel_to_reln @ X0)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((X0 @ X1) @ X2)))))))))) (Tset_relation.RRUNIV_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.RRUNIV @ X0)) @ (^[X1]: (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X0)))))))) (Tset_relation.RREFL_EXP_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.RREFL_EXP @ X0) @ X1)) @ ((cHOL4.relation.RUNION @ X0) @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1)))))))))))) (Tset_relation.reflexive_reln_to_rel_conv_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.reflexive @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.reflexive @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.rcomp_to_rel_conv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.rcomp @ X1) @ X0)) @ (cHOL4.set_relation.rel_to_reln @ ((cHOL4.relation.O @ (cHOL4.set_relation.reln_to_rel @ X0)) @ (cHOL4.set_relation.reln_to_rel @ X1))))))))) (Tset_relation.acyclic_bigunion,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))))) @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X1)) @ (cHOL4.set_relation.range @ X1))) @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X2)) @ (cHOL4.set_relation.range @ X2))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.set_relation.acyclic @ X1)))))) @ (cHOL4.set_relation.acyclic @ (cHOL4.pred_set.BIGUNION @ X0)))))) (Tset_relation.acyclic_irreflexive,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.set_relation.acyclic @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X1)) @ X0)))))))) (Tset_relation.acyclic_rrestrict,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.set_relation.acyclic @ X0)) @ (cHOL4.set_relation.acyclic @ ((cHOL4.set_relation.rrestrict @ X0) @ X1)))))))) (Tset_relation.tc_ind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((X1 @ X2) @ X4)) @ ((X1 @ X4) @ X3))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.rextension,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Tset_relation.in_domain,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.set_relation.domain @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X1))))))))) (Tset_relation.in_range,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.set_relation.range @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X0)) @ X1))))))))) (Tset_relation.in_rrestrict,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.set_relation.rrestrict @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ X3)) @ ((cHOL4.bool.IN @ X1) @ X3))))))))))))) (Tset_relation.rrestrict_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.set_relation.rrestrict @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.UNION @ ((cHOL4.set_relation.rrestrict @ X0) @ X2)) @ ((cHOL4.set_relation.rrestrict @ X1) @ X2)))))))))) (Tset_relation.rrestrict_rrestrict,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.set_relation.rrestrict @ ((cHOL4.set_relation.rrestrict @ X0) @ X1)) @ X2)) @ ((cHOL4.set_relation.rrestrict @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2)))))))))) (Tset_relation.strict_rrestrict,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.set_relation.strict @ ((cHOL4.set_relation.rrestrict @ X0) @ X1))) @ ((cHOL4.set_relation.rrestrict @ (cHOL4.set_relation.strict @ X0)) @ X1))))))) (Tset_relation.finite_prefixes_subset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X2)) @ ((cHOL4.set_relation.finite_prefixes @ ((cHOL4.set_relation.rrestrict @ X0) @ X2)) @ X2)))))))))) (Tset_relation.finite_prefixes_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X2)) @ ((cHOL4.set_relation.finite_prefixes @ X1) @ X3))) @ ((cHOL4.set_relation.finite_prefixes @ ((cHOL4.pred_set.UNION @ X0) @ X1)) @ ((cHOL4.pred_set.INTER @ X2) @ X3)))))))))))) (Tset_relation.finite_prefixes_comp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X1) @ X3)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.GSPEC @ (^[X4]: ((cHOL4.pair.|comma| @ X4) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X3)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X1)))))))) @ X2)))) @ ((cHOL4.set_relation.finite_prefixes @ ((cHOL4.set_relation.rcomp @ X0) @ X1)) @ X3))))))))))) (Tset_relation.finite_prefixes_inj_image,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X3)) @ (X0 @ X4))) @ ((cHOL4.min.= @ X3) @ X4))))))) @ ((cHOL4.set_relation.finite_prefixes @ X1) @ X2))) @ ((cHOL4.set_relation.finite_prefixes @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ (X0 @ X3)) @ (X0 @ X4))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ X1))))))) @ ((cHOL4.pred_set.IMAGE @ X0) @ X2)))))))))) (Tset_relation.finite_prefixes_range,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X1)) @ ((cHOL4.pred_set.DISJOINT @ X2) @ (cHOL4.set_relation.range @ X0)))) @ ((cHOL4.set_relation.finite_prefixes @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2)))))))))) (Tset_relation.tc_rules,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (cHOL4.set_relation.tc @ X0)))))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0))))))))))) (Tset_relation.tc_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (cHOL4.set_relation.tc @ X0)))))))))))))) (Tset_relation.tc_strongind,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X4) @ X3))))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.tc_cases_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X0))))))))))))) (Tset_relation.tc_cases_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (cHOL4.set_relation.tc @ X0)))))))))))))) (Tset_relation.tc_ind_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ X0)) @ ((X1 @ X4) @ X3))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.tc_strongind_left,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X4) @ X3)))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.tc_ind_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((X1 @ X2) @ X4)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X0))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.rtc_ind_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.set_relation.domain @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.set_relation.range @ X0)))) @ ((X1 @ X2) @ X2))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((X1 @ X2) @ X4)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X0))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.tc_strongind_right,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((X1 @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X4)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool./\ @ ((X1 @ X2) @ X4)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ X0)))))) @ ((X1 @ X2) @ X3)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((X1 @ X2) @ X3)))))))))))) (Tset_relation.tc_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ ((cHOL4.pred_set.UNION @ X0) @ X3))))))))))))) (Tset_relation.tc_implication,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X1))))))))))))) (Tset_relation.tc_empty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (cHOL4.set_relation.tc @ cHOL4.pred_set.EMPTY)))))))) (Tset_relation.tc_domain_range,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ (cHOL4.set_relation.tc @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.set_relation.domain @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.set_relation.range @ X0))))))))))) (Tset_relation.rrestrict_tc,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ ((cHOL4.set_relation.rrestrict @ X1) @ X0)))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X1)))))))))))) (Tset_relation.acyclic_subset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.set_relation.acyclic @ X0)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0))) @ (cHOL4.set_relation.acyclic @ X1))))))) (Tset_relation.acyclic_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X0)) @ (cHOL4.set_relation.range @ X0))) @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X1)) @ (cHOL4.set_relation.range @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.acyclic @ X0)) @ (cHOL4.set_relation.acyclic @ X1)))) @ (cHOL4.set_relation.acyclic @ ((cHOL4.pred_set.UNION @ X0) @ X1)))))))) (Tset_relation.maximal_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.set_relation.maximal_elements @ X1) @ ((cHOL4.pred_set.UNION @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.set_relation.maximal_elements @ X1) @ X2))) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.set_relation.maximal_elements @ X1) @ X3))))))))))))) (Tset_relation.minimal_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.set_relation.minimal_elements @ X1) @ ((cHOL4.pred_set.UNION @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.set_relation.minimal_elements @ X1) @ X2))) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.set_relation.minimal_elements @ X1) @ X3))))))))))))) (Tset_relation.finite_acyclic_has_maximal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.set_relation.acyclic @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1)))))))))))) (Tset_relation.finite_acyclic_has_minimal,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.set_relation.acyclic @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1)))))))))))) (Tset_relation.maximal_TC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ X1)) @ X0)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ X1)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.set_relation.maximal_elements @ X0) @ (cHOL4.set_relation.tc @ X1))) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1)))))))) (Tset_relation.minimal_TC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ X1)) @ X0)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ X1)) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.set_relation.minimal_elements @ X0) @ (cHOL4.set_relation.tc @ X1))) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1)))))))) (Tset_relation.finite_acyclic_has_maximal_path,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.acyclic @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.set_relation.tc @ X1))))))))))))) (Tset_relation.finite_acyclic_has_minimal_path,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.acyclic @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ (cHOL4.set_relation.tc @ X1))))))))))))) (Tset_relation.transitive_tc,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.set_relation.transitive @ X0)) @ ((cHOL4.min.= @ (cHOL4.set_relation.tc @ X0)) @ X0))))) (Tset_relation.tc_transitive,(cHOL4.bool.! @ (^[X0]: (cHOL4.set_relation.transitive @ (cHOL4.set_relation.tc @ X0))))) (Tset_relation.partial_order_dom_rng,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.set_relation.partial_order @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1)))))))))))) (Tset_relation.partial_order_subset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.set_relation.partial_order @ ((cHOL4.set_relation.rrestrict @ X0) @ X2)) @ X2))))))))) (Tset_relation.strict_partial_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ (cHOL4.set_relation.strict @ X0))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ (cHOL4.set_relation.strict @ X0))) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.transitive @ (cHOL4.set_relation.strict @ X0))) @ (cHOL4.set_relation.antisym @ (cHOL4.set_relation.strict @ X0))))))))))) (Tset_relation.strict_partial_order_acyclic,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ (cHOL4.set_relation.acyclic @ (cHOL4.set_relation.strict @ X0)))))))) (Tset_relation.finite_prefix_po_has_minimal_path,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.minimal_elements @ X3) @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X3)) @ ((cHOL4.pred_set.SUBSET @ X3) @ X1)))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.set_relation.minimal_elements @ X3) @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X4) @ X2)) @ X0)))))))))))))) (Tset_relation.linear_order_subset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.set_relation.linear_order @ ((cHOL4.set_relation.rrestrict @ X0) @ X2)) @ X2))))))))) (Tset_relation.partial_order_linear_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.set_relation.linear_order @ X0) @ X1)) @ ((cHOL4.set_relation.partial_order @ X0) @ X1))))))) (Tset_relation.strict_linear_order_dom_rng,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.set_relation.strict_linear_order @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1)))))))))))) (Tset_relation.linear_order_dom_rng,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.set_relation.linear_order @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.bool.IN @ X3) @ X1)))))))))))) (Tset_relation.empty_strict_linear_order,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.strict_linear_order @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) (Tset_relation.empty_linear_order,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.linear_order @ X0) @ cHOL4.pred_set.EMPTY)) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) (Tset_relation.linear_order_restrict,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.set_relation.linear_order @ X1) @ X0)) @ ((cHOL4.set_relation.linear_order @ ((cHOL4.set_relation.rrestrict @ X1) @ X2)) @ ((cHOL4.pred_set.INTER @ X0) @ X2)))))))))) (Tset_relation.strict_linear_order_restrict,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.set_relation.strict_linear_order @ X1) @ X0)) @ ((cHOL4.set_relation.strict_linear_order @ ((cHOL4.set_relation.rrestrict @ X1) @ X2)) @ ((cHOL4.pred_set.INTER @ X0) @ X2)))))))))) (Tset_relation.extend_linear_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))) @ ((cHOL4.set_relation.linear_order @ X0) @ X1))) @ ((cHOL4.set_relation.linear_order @ ((cHOL4.pred_set.UNION @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.UNION @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY)))))))) @ ((cHOL4.pred_set.UNION @ X1) @ ((cHOL4.pred_set.INSERT @ X2) @ cHOL4.pred_set.EMPTY))))))))))) (Tset_relation.strict_linear_order_acyclic,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.set_relation.strict_linear_order @ X0) @ X1)) @ (cHOL4.set_relation.acyclic @ X0))))))) (Tset_relation.strict_linear_order_union_acyclic,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.strict_linear_order @ X0) @ X2)) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.UNION @ (cHOL4.set_relation.domain @ X1)) @ (cHOL4.set_relation.range @ X1))) @ X2))) @ ((cHOL4.min.= @ (cHOL4.set_relation.acyclic @ ((cHOL4.pred_set.UNION @ X0) @ X1))) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)))))))))) (Tset_relation.strict_linear_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.set_relation.linear_order @ X0) @ X1)) @ ((cHOL4.set_relation.strict_linear_order @ (cHOL4.set_relation.strict @ X0)) @ X1))))))) (Tset_relation.linear_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.set_relation.strict_linear_order @ X0) @ X1)) @ ((cHOL4.set_relation.linear_order @ ((cHOL4.pred_set.UNION @ X0) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X2) @ X2)) @ ((cHOL4.bool.IN @ X2) @ X1)))))) @ X1))))))) (Tset_relation.finite_strict_linear_order_has_maximal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.strict_linear_order @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1)))))))))) (Tset_relation.finite_strict_linear_order_has_minimal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.strict_linear_order @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1)))))))))) (Tset_relation.finite_linear_order_has_maximal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1)))))))))) (Tset_relation.finite_linear_order_has_minimal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X1) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1)))))))))) (Tset_relation.maximal_linear_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X1) @ X0)) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.maximal_elements @ X0) @ X1))))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))))))))))) (Tset_relation.minimal_linear_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X1) @ X0)) @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.minimal_elements @ X0) @ X1))))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1))))))))))) (Tset_relation.minimal_linear_order_unique,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.set_relation.minimal_elements @ X2) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ ((cHOL4.set_relation.minimal_elements @ X2) @ X0))) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))))) @ ((cHOL4.min.= @ X3) @ X4))))))))))))) (Tset_relation.finite_prefix_linear_order_has_unique_minimal,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ X3)) @ ((cHOL4.pred_set.SUBSET @ X3) @ X2))))) @ (cHOL4.pred_set.SING @ ((cHOL4.set_relation.minimal_elements @ X3) @ X1)))))))))))) (Tset_relation.nat_order_iso_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X3)) @ (X0 @ X2))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X0 @ X3)) @ cHOL4.option.NONE)))) @ ((cHOL4.min.= @ X3) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X1)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ (cHOL4.option.SOME @ X4)))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X3)) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.bool.IN @ X4) @ X1))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X3)) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.option.SOME @ X5)))))))))))))) @ X1)) @ ((cHOL4.set_relation.finite_prefixes @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X3)) @ (cHOL4.option.SOME @ X4))) @ ((cHOL4.min.= @ (X0 @ X2)) @ (cHOL4.option.SOME @ X5)))))))))))))) @ X1)))))))) (Tset_relation.upper_bounds_lem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.set_relation.transitive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.set_relation.upper_bounds @ X1) @ X0))) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)))) @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.set_relation.upper_bounds @ X1) @ X0)))))))))))) (Tset_relation.zorns_lemma,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.set_relation.chain @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.set_relation.upper_bounds @ X2) @ X0)) @ cHOL4.pred_set.EMPTY)))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool.IN @ X3) @ ((cHOL4.set_relation.maximal_elements @ X1) @ X0)))))))))) (Tset_relation.per_delete,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.set_relation.per @ X0) @ X1)) @ ((cHOL4.set_relation.per @ ((cHOL4.pred_set.DELETE @ X0) @ X2)) @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((cHOL4.pred_set.DELETE @ X3) @ X2))) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ cHOL4.pred_set.EMPTY))))))))))))))) (Tset_relation.per_restrict_per,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.set_relation.per @ X1) @ X0)) @ ((cHOL4.set_relation.per @ X2) @ ((cHOL4.set_relation.per_restrict @ X0) @ X2)))))))))) (Tset_relation.countable_per,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X0)) @ ((cHOL4.set_relation.per @ X0) @ X1))) @ (cHOL4.pred_set.countable @ X1))))))) (Tset_relation.all_choices_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ (cHOL4.set_relation.all_choices @ X1))) @ ((cHOL4.bool.IN @ X2) @ X0))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X2) @ X3)))))))))))) (Tset_relation.linear_order_num_order,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ ((cHOL4.set_relation.linear_order @ ((cHOL4.set_relation.num_order @ X0) @ X1)) @ X1))))))))) (Tset_relation.num_order_finite_prefix,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ ((cHOL4.set_relation.finite_prefixes @ ((cHOL4.set_relation.num_order @ X0) @ X1)) @ X1))))))))) (Tset_relation.nth_min_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ cHOL4.num.0)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ ((cHOL4.set_relation.get_min @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X5) @ cHOL4.option.NONE)))) @ (((X0 @ X1) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.DELETE @ X2) @ (cHOL4.option.THE @ X5))) @ X3)) @ X4))))) @ (((X0 @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ (cHOL4.num.SUC @ X4))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (((X0 @ X6) @ ((cHOL4.pair.|comma| @ X7) @ X8)) @ X9))))))))))))) (Tset_relation.nth_min_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ cHOL4.num.0)) @ ((cHOL4.set_relation.get_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ (cHOL4.num.SUC @ X3))) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ cHOL4.option.NONE)) @ cHOL4.option.NONE) @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.DELETE @ X0) @ (cHOL4.option.THE @ X4))) @ X2)) @ X3)))) @ ((cHOL4.set_relation.get_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))))))) (Tset_relation.nth_min_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ cHOL4.num.0)) @ ((cHOL4.set_relation.get_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3)))) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ cHOL4.option.NONE)) @ cHOL4.option.NONE) @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.DELETE @ X0) @ (cHOL4.option.THE @ X4))) @ X2)) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.set_relation.get_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X3)))) @ ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ cHOL4.option.NONE)) @ cHOL4.option.NONE) @ (((cHOL4.set_relation.nth_min @ X1) @ ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.DELETE @ X0) @ (cHOL4.option.THE @ X4))) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X3)))))) @ ((cHOL4.set_relation.get_min @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2))))))))))))))) (Tset_relation.linear_order_of_countable_po,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.countable @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.partial_order @ X0) @ X1)) @ ((cHOL4.set_relation.finite_prefixes @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.set_relation.linear_order @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.set_relation.finite_prefixes @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2))))))))))) (Tset_relation.RREFL_EXP_RSUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.relation.RSUBSET @ X1) @ ((cHOL4.set_relation.RREFL_EXP @ X1) @ X0))))))) (Tset_relation.RREFL_EXP_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.RREFL_EXP @ X0) @ cHOL4.pred_set.UNIV)) @ X0)))) (Tset_relation.REL_RESTRICT_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pred_set.REL_RESTRICT @ X0) @ cHOL4.pred_set.UNIV)) @ X0)))) (Tset_relation.in_rel_to_reln,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.set_relation.rel_to_reln @ X1))) @ ((X1 @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.SND @ X0)))))))) (Tset_relation.reln_to_rel_app,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.set_relation.reln_to_rel @ X2) @ X1) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X1) @ X0)) @ X2))))))))) (Tset_relation.rel_to_reln_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.reln_to_rel @ (cHOL4.set_relation.rel_to_reln @ X0))) @ X0)))) (Tset_relation.reln_to_rel_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.set_relation.reln_to_rel @ X0))) @ X0)))) (Tset_relation.reln_to_rel_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.set_relation.reln_to_rel @ X1)) @ (cHOL4.set_relation.reln_to_rel @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tset_relation.rel_to_reln_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.set_relation.rel_to_reln @ X1)) @ (cHOL4.set_relation.rel_to_reln @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tset_relation.rel_to_reln_swap,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.set_relation.rel_to_reln @ X1))) @ ((cHOL4.min.= @ (cHOL4.set_relation.reln_to_rel @ X0)) @ X1))))))) (Tset_relation.domain_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.domain @ X0)) @ (cHOL4.relation.RDOM @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.range_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.range @ X0)) @ (cHOL4.relation.RRANGE @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.strict_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.strict @ X0)) @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.relation.STRORD @ (cHOL4.set_relation.reln_to_rel @ X0))))))) (Tset_relation.rrestrict_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.univ_reln @ X0)) @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.set_relation.RRUNIV @ X0)))))) (Tset_relation.tc_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.tc @ X0)) @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.relation.TC @ (cHOL4.set_relation.reln_to_rel @ X0))))))) (Tset_relation.acyclic_reln_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.acyclic @ X0)) @ (cHOL4.relation.irreflexive @ (cHOL4.relation.TC @ (cHOL4.set_relation.reln_to_rel @ X0))))))) (Tset_relation.irreflexive_reln_to_rel_conv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.irreflexive @ X1) @ X0)) @ (cHOL4.relation.irreflexive @ ((cHOL4.pred_set.REL_RESTRICT @ (cHOL4.set_relation.reln_to_rel @ X1)) @ X0)))))))) (Tset_relation.irreflexive_reln_to_rel_conv_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.irreflexive @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.irreflexive @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.reflexive_reln_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.transitive @ X0)) @ (cHOL4.relation.transitive @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.antisym_reln_to_rel_conv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.set_relation.antisym @ X0)) @ (cHOL4.relation.antisymmetric @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.partial_order_reln_to_rel_conv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.set_relation.partial_order @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.relation.RSUBSET @ (cHOL4.set_relation.reln_to_rel @ X1)) @ (cHOL4.set_relation.RRUNIV @ X0))) @ (cHOL4.relation.WeakOrder @ ((cHOL4.set_relation.RREFL_EXP @ (cHOL4.set_relation.reln_to_rel @ X1)) @ X0))))))))) (Tset_relation.partial_order_reln_to_rel_conv_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.partial_order @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.WeakOrder @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.linear_order_reln_to_rel_conv_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.linear_order @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.WeakLinearOrder @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.strict_linear_order_reln_to_rel_conv_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.set_relation.strict_linear_order @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.StrongLinearOrder @ (cHOL4.set_relation.reln_to_rel @ X0)))))) (Tset_relation.reln_rel_conv_thms,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ (cHOL4.set_relation.rel_to_reln @ X13))) @ ((X13 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.set_relation.reln_to_rel @ X9) @ X2) @ X0)) @ ((cHOL4.bool.IN @ ((cHOL4.pair.|comma| @ X2) @ X0)) @ X9))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.reln_to_rel @ (cHOL4.set_relation.rel_to_reln @ X13))) @ X13)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.set_relation.reln_to_rel @ X9))) @ X9)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.set_relation.reln_to_rel @ X7)) @ (cHOL4.set_relation.reln_to_rel @ X5))) @ ((cHOL4.min.= @ X7) @ X5))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.set_relation.rel_to_reln @ X12)) @ (cHOL4.set_relation.rel_to_reln @ X11))) @ ((cHOL4.min.= @ X12) @ X11)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.RREFL_EXP @ X14) @ cHOL4.pred_set.UNIV)) @ X14)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.REL_RESTRICT @ X14) @ cHOL4.pred_set.UNIV)) @ X14)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.domain @ X9)) @ (cHOL4.relation.RDOM @ (cHOL4.set_relation.reln_to_rel @ X9)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.range @ X8)) @ (cHOL4.relation.RRANGE @ (cHOL4.set_relation.reln_to_rel @ X8)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.strict @ X10)) @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.relation.STRORD @ (cHOL4.set_relation.reln_to_rel @ X10))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.rrestrict @ X10) @ X3)) @ (cHOL4.set_relation.rel_to_reln @ ((cHOL4.pred_set.REL_RESTRICT @ (cHOL4.set_relation.reln_to_rel @ X10)) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.rcomp @ X6) @ X4)) @ (cHOL4.set_relation.rel_to_reln @ ((cHOL4.relation.O @ (cHOL4.set_relation.reln_to_rel @ X4)) @ (cHOL4.set_relation.reln_to_rel @ X6))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.univ_reln @ X3)) @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.set_relation.RRUNIV @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.tc @ X10)) @ (cHOL4.set_relation.rel_to_reln @ (cHOL4.relation.TC @ (cHOL4.set_relation.reln_to_rel @ X10))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.acyclic @ X10)) @ (cHOL4.relation.irreflexive @ (cHOL4.relation.TC @ (cHOL4.set_relation.reln_to_rel @ X10))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.irreflexive @ X10) @ X3)) @ (cHOL4.relation.irreflexive @ ((cHOL4.pred_set.REL_RESTRICT @ (cHOL4.set_relation.reln_to_rel @ X10)) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.reflexive @ X10) @ X3)) @ (cHOL4.relation.reflexive @ ((cHOL4.set_relation.RREFL_EXP @ (cHOL4.set_relation.reln_to_rel @ X10)) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.transitive @ X10)) @ (cHOL4.relation.transitive @ (cHOL4.set_relation.reln_to_rel @ X10)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.set_relation.antisym @ X10)) @ (cHOL4.relation.antisymmetric @ (cHOL4.set_relation.reln_to_rel @ X10)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.partial_order @ X10) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.WeakOrder @ (cHOL4.set_relation.reln_to_rel @ X10)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.set_relation.linear_order @ X10) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.WeakLinearOrder @ (cHOL4.set_relation.reln_to_rel @ X10)))) @ ((cHOL4.min.= @ ((cHOL4.set_relation.strict_linear_order @ X10) @ cHOL4.pred_set.UNIV)) @ (cHOL4.relation.StrongLinearOrder @ (cHOL4.set_relation.reln_to_rel @ X10))))))))))))))))))))))))))))))))))))))))))))))))))) (Tset_relation.acyclic_WF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.set_relation.acyclic @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.domain @ X1)) @ X0)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.set_relation.range @ X1)) @ X0))))) @ (cHOL4.relation.WF @ (cHOL4.set_relation.reln_to_rel @ X1)))))))) (Tsorting.PERM_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ (cHOL4.min.= @ X2)) @ X0)) @ ((cHOL4.list.FILTER @ (cHOL4.min.= @ X2)) @ X1)))))))))) (Tsorting.SORTED_tupled_primitive_DEF,((cHOL4.min.= @ cHOL4.sorting.SORTED_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ X3) @ X2))) @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X3) @ X2)))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X4]: (^[X7]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X1]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X3]: (^[X2]: (cHOL4.combin.I @ ((cHOL4.bool./\ @ ((X4 @ X1) @ X3)) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.list.CONS @ X3) @ X2))))))))))))))))))) (Tsorting.SORTED_curried_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ (cHOL4.sorting.SORTED_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tsorting.SORTS_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTS @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.sorting.PERM @ X2) @ ((X0 @ X1) @ X2))) @ ((cHOL4.sorting.SORTED @ X1) @ ((X0 @ X1) @ X2))))))))))) (Tsorting.PART_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.sorting.PART @ X0) @ cHOL4.list.NIL) @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.sorting.PART @ X0) @ ((cHOL4.list.CONS @ X3) @ X4)) @ X1) @ X2)) @ (((cHOL4.bool.COND @ (X0 @ X3)) @ ((((cHOL4.sorting.PART @ X0) @ X4) @ ((cHOL4.list.CONS @ X3) @ X1)) @ X2)) @ ((((cHOL4.sorting.PART @ X0) @ X4) @ X1) @ ((cHOL4.list.CONS @ X3) @ X2)))))))))))))))) (Tsorting.PARTITION_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PARTITION @ X0) @ X1)) @ ((((cHOL4.sorting.PART @ X0) @ X1) @ cHOL4.list.NIL) @ cHOL4.list.NIL))))))) (Tsorting.QSORT_tupled_primitive_DEF,((cHOL4.min.= @ cHOL4.sorting.QSORT_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.sorting.PARTITION @ (^[X6]: ((X3 @ X6) @ X2))) @ X1))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ X5)) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.sorting.PARTITION @ (^[X6]: ((X3 @ X6) @ X2))) @ X1))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X3]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (X7 @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ (X7 @ ((cHOL4.pair.|comma| @ X3) @ X5))))))) @ ((cHOL4.sorting.PARTITION @ (^[X6]: ((X3 @ X6) @ X2))) @ X1)))))))))))))) (Tsorting.QSORT_curried_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT @ X0) @ X1)) @ (cHOL4.sorting.QSORT_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tsorting.PERM_SINGLE_SWAP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM_SINGLE_SWAP @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ X3)) @ X4))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ X4)) @ X3))))))))))))))) (Tsorting.STABLE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.STABLE @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTS @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X2 @ X4))) @ ((X1 @ X3) @ X4))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.list.FILTER @ X2) @ X5)) @ ((cHOL4.list.FILTER @ X2) @ ((X0 @ X1) @ X5))))))))))))))) (Tsorting.PART3_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.sorting.PART3 @ X0) @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ ((cHOL4.pair.|comma| @ cHOL4.list.NIL) @ cHOL4.list.NIL)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.sorting.PART3 @ X0) @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))) @ (((cHOL4.pair.## @ cHOL4.combin.I) @ ((cHOL4.pair.## @ (cHOL4.list.CONS @ X2)) @ cHOL4.combin.I)) @ (((cHOL4.sorting.PART3 @ X0) @ X1) @ X3))) @ (((cHOL4.bool.COND @ ((X0 @ X2) @ X1)) @ (((cHOL4.pair.## @ (cHOL4.list.CONS @ X2)) @ ((cHOL4.pair.## @ cHOL4.combin.I) @ cHOL4.combin.I)) @ (((cHOL4.sorting.PART3 @ X0) @ X1) @ X3))) @ (((cHOL4.pair.## @ cHOL4.combin.I) @ ((cHOL4.pair.## @ cHOL4.combin.I) @ (cHOL4.list.CONS @ X2))) @ (((cHOL4.sorting.PART3 @ X0) @ X1) @ X3))))))))))))))) (Tsorting.QSORT3_tupled_primitive_DEF,((cHOL4.min.= @ cHOL4.sorting.QSORT3_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ (((cHOL4.sorting.PART3 @ X3) @ X2) @ X1))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ X6)) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ (((cHOL4.sorting.PART3 @ X3) @ X2) @ X1))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ X4)) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))))))))) @ (^[X7]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X3]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X4]: (cHOL4.pair.UNCURRY @ (^[X5]: (^[X6]: ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ (X7 @ ((cHOL4.pair.|comma| @ X3) @ X4))) @ ((cHOL4.list.CONS @ X2) @ X5))) @ (X7 @ ((cHOL4.pair.|comma| @ X3) @ X6))))))))) @ (((cHOL4.sorting.PART3 @ X3) @ X2) @ X1)))))))))))))) (Tsorting.QSORT3_curried_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT3 @ X0) @ X1)) @ (cHOL4.sorting.QSORT3_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tsorting.PERM_FUN_APPEND_APPEND_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X0)) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X2)))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X3) @ X0))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.APPEND @ X3) @ X2)))))))))))))) (Tsorting.PERM_FUN_APPEND_APPEND_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X0)) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X2)))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X3))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3)))))))))))))) (Tsorting.PERM_FUN_CONS_APPEND_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.APPEND @ X0) @ X3)))))))))))))) (Tsorting.PERM_FUN_CONS_APPEND_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X0))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.APPEND @ X3) @ X0)))))))))))))) (Tsorting.PERM_FUN_CONS_11_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X2) @ X3)))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X0) @ X3)))))))))))))) (Tsorting.PERM_FUN_CONS_11_SWAP_AT_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X0) @ X3)))))))))))))) (Tsorting.PERM_FUN_SWAP_AT_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X0) @ X2))))))))))) (Tsorting.PERM_FUN_APPEND_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.CONS @ X0) @ X2)))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ ((cHOL4.list.CONS @ X0) @ X1)) @ X2)))))))))) (Tsorting.PERM_FUN_CONS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ X2))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X2))))))))))) (Tsorting.PERM_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.sorting.PERM @ X0) @ X0)))) (Tsorting.PERM_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.sorting.PERM @ X0) @ X1))))))) (Tsorting.PERM_transitive,(cHOL4.relation.transitive @ cHOL4.sorting.PERM)) (Tsorting.PERM_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.sorting.PERM @ X1) @ X2))) @ ((cHOL4.sorting.PERM @ X0) @ X2))))))))) (Tsorting.PERM_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.sorting.PERM @ X1) @ X0))))))) (Tsorting.PERM_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.sorting.PERM @ X0) @ X2)) @ ((cHOL4.sorting.PERM @ X1) @ X3))) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X2) @ X3)))))))))))) (Tsorting.PERM_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ X0)) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))) (Tsorting.PERM_CONS_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X2)) @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.sorting.PERM @ X2) @ X1))))))))) (Tsorting.PERM_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ cHOL4.list.NIL) @ X0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))) (Tsorting.PERM_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X1) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)))) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL)) @ X1)) @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))))))) (Tsorting.PERM_CONS_EQ_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X2) @ X0)) @ X1)) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X3) @ ((cHOL4.list.CONS @ X2) @ X4)))) @ ((cHOL4.sorting.PERM @ X0) @ ((cHOL4.list.APPEND @ X3) @ X4))))))))))))))) (Tsorting.PERM_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X1) @ X0))))))) (Tsorting.CONS_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X1) @ ((cHOL4.list.APPEND @ X2) @ X3))) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X2) @ ((cHOL4.list.CONS @ X0) @ X3))))))))))))) (Tsorting.APPEND_PERM_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X2)) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X0)) @ X2))))))))) (Tsorting.PERM_SPLIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.sorting.PERM @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.list.FILTER @ X0) @ X1)) @ ((cHOL4.list.FILTER @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ X1)))))))) (Tsorting.PERM_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X0 @ ((cHOL4.list.CONS @ X1) @ X2)) @ ((cHOL4.list.CONS @ X1) @ X3)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((X0 @ X2) @ X3)) @ ((X0 @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X4) @ X2))) @ ((cHOL4.list.CONS @ X4) @ ((cHOL4.list.CONS @ X1) @ X3))))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X3)) @ ((X0 @ X3) @ X5))) @ ((X0 @ X2) @ X5)))))))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X2) @ X3)) @ ((X0 @ X2) @ X3)))))))))) (Tsorting.PERM_SWAP_AT_FRONT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X0) @ X3))) @ ((cHOL4.list.CONS @ X0) @ ((cHOL4.list.CONS @ X1) @ X2)))) @ ((cHOL4.sorting.PERM @ X3) @ X2))))))))))) (Tsorting.PERM_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))))))) (Tsorting.PERM_MEM_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Tsorting.PERM_LIST_TO_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.LIST_TO_SET @ X0)) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) (Tsorting.SORTED_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((X0 @ X1) @ ((cHOL4.list.CONS @ X3) @ X4))) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ ((cHOL4.list.CONS @ X3) @ X4))))))))))))))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ X5) @ X6))))))))) (Tsorting.SORTED_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.CONS @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.bool./\ @ ((X0 @ X1) @ X2)) @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))))))) (Tsorting.SORTED_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.relation.transitive @ X0)) @ ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((X0 @ X2) @ X3)))))))))))))) (Tsorting.SORTED_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X2)) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ (cHOL4.list.LIST_TO_SET @ X1))) @ ((cHOL4.bool.IN @ X4) @ (cHOL4.list.LIST_TO_SET @ X2)))) @ ((X0 @ X3) @ X4)))))))))) @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2)))))))))) (Tsorting.PART_LENGTH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((((cHOL4.sorting.PART @ X0) @ X1) @ X2) @ X3))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.list.LENGTH @ X3))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X4)) @ (cHOL4.list.LENGTH @ X5))))))))))))))))) (Tsorting.PART_LENGTH_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((((cHOL4.sorting.PART @ X0) @ X1) @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X4)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.list.LENGTH @ X3)))) @ ((cHOL4.arithmetic.<= @ (cHOL4.list.LENGTH @ X5)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X1)) @ (cHOL4.list.LENGTH @ X2))) @ (cHOL4.list.LENGTH @ X3)))))))))))))))))) (Tsorting.PARTs_HAVE_PROP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((((cHOL4.sorting.PART @ X0) @ X1) @ X4) @ X5))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ X4))) @ (X0 @ X6))))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ X5))) @ (cHOL4.bool.~ @ (X0 @ X6)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X7) @ (cHOL4.list.LIST_TO_SET @ X2))) @ (X0 @ X7))))) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X7) @ (cHOL4.list.LIST_TO_SET @ X3))) @ (cHOL4.bool.~ @ (X0 @ X7)))))))))))))))))))) (Tsorting.PART_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((((cHOL4.sorting.PART @ X0) @ X1) @ X4) @ X5))) @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X1) @ ((cHOL4.list.APPEND @ X4) @ X5))))) @ ((cHOL4.bool.IN @ X6) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.list.APPEND @ X2) @ X3)))))))))))))))))))) (Tsorting.QSORT_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.sorting.PARTITION @ (^[X6]: ((X1 @ X6) @ X2))) @ X3))) @ ((X0 @ X1) @ X5))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.sorting.PARTITION @ (^[X6]: ((X1 @ X6) @ X2))) @ X3))) @ ((X0 @ X1) @ X4)))))))) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Tsorting.QSORT_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((cHOL4.sorting.QSORT @ X0) @ X3)) @ ((cHOL4.list.CONS @ X2) @ cHOL4.list.NIL))) @ ((cHOL4.sorting.QSORT @ X0) @ X4)))))) @ ((cHOL4.sorting.PARTITION @ (^[X5]: ((X0 @ X5) @ X2))) @ X1))))))))))) (Tsorting.QSORT_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ ((cHOL4.sorting.QSORT @ X0) @ X1)))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1)))))))))) (Tsorting.QSORT_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.sorting.PERM @ X1) @ ((cHOL4.sorting.QSORT @ X0) @ X1))))))) (Tsorting.QSORT_SORTED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.total @ X0))) @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.sorting.QSORT @ X0) @ X1)))))))) (Tsorting.QSORT_SORTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.total @ X0))) @ ((cHOL4.sorting.SORTS @ cHOL4.sorting.QSORT) @ X0))))) (Tsorting.PERM_APPEND_IFF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.sorting.PERM @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X0)) @ ((cHOL4.list.APPEND @ X2) @ X0))) @ ((cHOL4.sorting.PERM @ X1) @ X2)))))))))) (Tsorting.PERM_SINGLE_SWAP_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.sorting.PERM_SINGLE_SWAP @ X0) @ X0)))) (Tsorting.PERM_SINGLE_SWAP_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM_SINGLE_SWAP @ X0) @ X1)) @ ((cHOL4.sorting.PERM_SINGLE_SWAP @ X1) @ X0))))))) (Tsorting.PERM_TC,((cHOL4.min.= @ cHOL4.sorting.PERM) @ (cHOL4.relation.TC @ cHOL4.sorting.PERM_SINGLE_SWAP))) (Tsorting.PERM_RTC,((cHOL4.min.= @ cHOL4.sorting.PERM) @ (cHOL4.relation.RTC @ cHOL4.sorting.PERM_SINGLE_SWAP))) (Tsorting.PERM_EQC,((cHOL4.min.= @ cHOL4.sorting.PERM) @ (cHOL4.relation.EQC @ cHOL4.sorting.PERM_SINGLE_SWAP))) (Tsorting.PERM_lifts_transitive_relations,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X1 @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ X3)) @ X4))) @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ X4)) @ X3)))))))))) @ (cHOL4.relation.transitive @ X1))) @ (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X5) @ X6)) @ ((X1 @ (X0 @ X5)) @ (X0 @ X6))))))))))))) (Tsorting.PERM_lifts_equalities,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X2)) @ X3))) @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X3)) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X4) @ X5)) @ ((cHOL4.min.= @ (X0 @ X4)) @ (X0 @ X5))))))))))) (Tsorting.PERM_lifts_invariants,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X2)) @ X3))) @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X3)) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ ((cHOL4.sorting.PERM @ X4) @ X5))) @ (X0 @ X5)))))))))) (Tsorting.PERM_lifts_monotonicities,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X2)) @ X3))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X4) @ X5)) @ X6))) @ ((cHOL4.min.= @ (X0 @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X3)) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X4) @ X6)) @ X5)))))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X7) @ X8)) @ ((cHOL4.sorting.PERM @ (X0 @ X7)) @ (X0 @ X8))))))))))) (Tsorting.PERM_EQUIVALENCE,(cHOL4.relation.equivalence @ cHOL4.sorting.PERM)) (Tsorting.PERM_EQUIVALENCE_ALT_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X0)) @ (cHOL4.sorting.PERM @ X1)))))))) (Tsorting.ALL_DISTINCT_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ X0)) @ (cHOL4.list.ALL_DISTINCT @ X1)))))))) (Tsorting.PERM_ALL_DISTINCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1)))))))) @ ((cHOL4.sorting.PERM @ X0) @ X1))))))) (Tsorting.ALL_DISTINCT_PERM_LIST_TO_SET_TO_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.ALL_DISTINCT @ X0)) @ ((cHOL4.sorting.PERM @ X0) @ (cHOL4.list.SET_TO_LIST @ (cHOL4.list.LIST_TO_SET @ X0))))))) (Tsorting.PERM_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X1) @ X2)) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.MAP @ X0) @ X1)) @ ((cHOL4.list.MAP @ X0) @ X2)))))))))) (Tsorting.PERM_SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.list.SUM @ X0)) @ (cHOL4.list.SUM @ X1)))))))) (Tsorting.PERM_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X1) @ X2)) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.FILTER @ X0) @ X1)) @ ((cHOL4.list.FILTER @ X0) @ X2)))))))))) (Tsorting.PERM_REVERSE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.sorting.PERM @ X0) @ (cHOL4.list.REVERSE @ X0))))) (Tsorting.PERM_REVERSE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ (cHOL4.list.REVERSE @ X1)) @ X0)) @ ((cHOL4.sorting.PERM @ X1) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X1) @ (cHOL4.list.REVERSE @ X0))) @ ((cHOL4.sorting.PERM @ X1) @ X0)))))))) (Tsorting.FOLDR_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.operator.ASSOC @ X0)) @ (cHOL4.operator.COMM @ X0))) @ ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X1) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.list.FOLDR @ X0) @ X3) @ X1)) @ (((cHOL4.list.FOLDR @ X0) @ X3) @ X2))))))))))))) (Tsorting.PERM_SET_TO_LIST_count_COUNT_LIST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.sorting.PERM @ (cHOL4.list.SET_TO_LIST @ (cHOL4.pred_set.count @ X0))) @ (cHOL4.rich_list.COUNT_LIST @ X0))))) (Tsorting.SUM_IMAGE_count_SUM_GENLIST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X1) @ (cHOL4.pred_set.count @ X0))) @ (cHOL4.list.SUM @ ((cHOL4.list.GENLIST @ X1) @ X0)))))))) (Tsorting.SUM_IMAGE_count_MULT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X0)) @ ((cHOL4.min.= @ (X2 @ X4)) @ ((cHOL4.pred_set.SUM_IMAGE @ (^[X5]: (X3 @ ((cHOL4.arithmetic.+ @ X5) @ ((cHOL4.arithmetic.* @ X1) @ X4))))) @ (cHOL4.pred_set.count @ X1))))))) @ ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ X3) @ (cHOL4.pred_set.count @ ((cHOL4.arithmetic.* @ X1) @ X0)))) @ ((cHOL4.pred_set.SUM_IMAGE @ X2) @ (cHOL4.pred_set.count @ X0))))))))))))) (Tsorting.sum_of_sums,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUM_IMAGE @ (^[X3]: ((cHOL4.pred_set.SUM_IMAGE @ (X0 @ X3)) @ (cHOL4.pred_set.count @ X2)))) @ (cHOL4.pred_set.count @ X1))) @ ((cHOL4.pred_set.SUM_IMAGE @ (^[X3]: ((X0 @ ((cHOL4.arithmetic.DIV @ X3) @ X2)) @ ((cHOL4.arithmetic.MOD @ X3) @ X2)))) @ (cHOL4.pred_set.count @ ((cHOL4.arithmetic.* @ X2) @ X1))))))))))) (Tsorting.SORTED_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.sorting.SORTED @ X0) @ cHOL4.list.NIL)))) (Tsorting.SORTED_SING,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.CONS @ X1) @ cHOL4.list.NIL))))))) (Tsorting.SORTED_EL_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X2)) @ (cHOL4.list.LENGTH @ X1))) @ ((X0 @ ((cHOL4.list.EL @ X2) @ X1)) @ ((cHOL4.list.EL @ (cHOL4.num.SUC @ X2)) @ X1))))))))))) (Tsorting.SORTED_EL_LESS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.list.LENGTH @ X1)))) @ ((X0 @ ((cHOL4.list.EL @ X2) @ X1)) @ ((cHOL4.list.EL @ X3) @ X1)))))))))))))) (Tsorting.SORTED_transitive_APPEND_IFF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.SORTED @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL)) @ ((X0 @ (cHOL4.list.LAST @ X1)) @ (cHOL4.list.HD @ X2))))))))))))))) (Tsorting.MEM_PERM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X0))) @ ((cHOL4.bool.IN @ X2) @ (cHOL4.list.LIST_TO_SET @ X1))))))))))) (Tsorting.SORTED_PERM_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.antisymmetric @ X0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.SORTED @ X0) @ X2)) @ ((cHOL4.sorting.PERM @ X1) @ X2)))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tsorting.QSORT_eq_if_PERM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.total @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.antisymmetric @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.sorting.QSORT @ X0) @ X1)) @ ((cHOL4.sorting.QSORT @ X0) @ X2))) @ ((cHOL4.sorting.PERM @ X1) @ X2)))))))))) (Tsorting.PERM_FUN_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X0)))))))) (Tsorting.PERM_FUN_CONS_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ X2))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.CONS @ X0) @ X2))))))))))) (Tsorting.PERM_FUN_APPEND_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X1)) @ (cHOL4.sorting.PERM @ X2))) @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X1))) @ (cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X2))))))))))) (Tsorting.PERM_FUN_CONG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X0)) @ (cHOL4.sorting.PERM @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.sorting.PERM @ X2)) @ (cHOL4.sorting.PERM @ X3))) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X0) @ X2)) @ ((cHOL4.sorting.PERM @ X1) @ X3))))))))))))) (Tsorting.PERM_CONG_2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X2) @ X3)) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X0) @ X2)) @ ((cHOL4.sorting.PERM @ X1) @ X3))))))))))))) (Tsorting.PERM_CONG_APPEND_IFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X1) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X3) @ ((cHOL4.list.APPEND @ X0) @ X4))) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ X1) @ X3)) @ ((cHOL4.sorting.PERM @ X2) @ X4))))))))))))))) (Tsorting.PERM_FUN_SPLIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ ((cHOL4.list.APPEND @ X1) @ X3))) @ ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X2) @ X1)) @ ((cHOL4.sorting.PERM @ X0) @ ((cHOL4.list.APPEND @ X2) @ X3))))))))))))) (Tsorting.PERM_REWR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.sorting.PERM @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X0) @ X2)) @ X3)) @ ((cHOL4.sorting.PERM @ ((cHOL4.list.APPEND @ X1) @ X2)) @ X3)))))))))))) (Tsorting.PART3_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.sorting.PART3 @ X0) @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X2)) @ (cHOL4.bool.~ @ ((X0 @ X2) @ X3))))) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X2)) @ ((X0 @ X2) @ X3)))) @ X1)) @ ((cHOL4.list.FILTER @ (^[X3]: (cHOL4.bool.~ @ ((X0 @ X3) @ X2)))) @ X1))))))))))) (Tsorting.QSORT3_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ (((cHOL4.sorting.PART3 @ X1) @ X2) @ X3))) @ ((X0 @ X1) @ X6))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))) @ (((cHOL4.sorting.PART3 @ X1) @ X2) @ X3))) @ ((X0 @ X1) @ X4)))))))))) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Tsorting.QSORT3_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT3 @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT3 @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((cHOL4.sorting.QSORT3 @ X0) @ X3)) @ ((cHOL4.list.CONS @ X2) @ X4))) @ ((cHOL4.sorting.QSORT3 @ X0) @ X5)))))))) @ (((cHOL4.sorting.PART3 @ X0) @ X2) @ X1))))))))))) (Tsorting.PERM3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ ((cHOL4.sorting.PERM @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.sorting.PERM @ X3) @ X4)) @ ((cHOL4.sorting.PERM @ X5) @ X6)))) @ ((cHOL4.sorting.PERM @ X0) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X1) @ X3)) @ X5)))) @ ((cHOL4.sorting.PERM @ X0) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X2) @ X4)) @ X6)))))))))))))))))) (Tsorting.PERM3_FILTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.sorting.PERM @ X1) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X2)) @ (cHOL4.bool.~ @ ((X0 @ X2) @ X3))))) @ X1)) @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X2)) @ ((X0 @ X2) @ X3)))) @ X1))) @ ((cHOL4.list.FILTER @ (^[X3]: (cHOL4.bool.~ @ ((X0 @ X3) @ X2)))) @ X1)))))))))) (Tsorting.PERM_QSORT3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.sorting.PERM @ X0) @ ((cHOL4.sorting.QSORT3 @ X1) @ X0))))))) (Tsorting.SORTED_EQ_PART,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.relation.transitive @ X2)) @ ((cHOL4.sorting.SORTED @ X2) @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X2 @ X3) @ X0)) @ ((X2 @ X0) @ X3)))) @ X1)))))))))) (Tsorting.QSORT3_SORTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.total @ X0))) @ ((cHOL4.sorting.SORTS @ cHOL4.sorting.QSORT3) @ X0))))) (Tsorting.QSORT3_SPLIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.total @ X0))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.sorting.QSORT3 @ X0) @ X1)) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ ((cHOL4.sorting.QSORT3 @ X0) @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X2)) @ (cHOL4.bool.~ @ ((X0 @ X2) @ X3))))) @ X1))) @ ((cHOL4.list.FILTER @ (^[X3]: ((cHOL4.bool./\ @ ((X0 @ X3) @ X2)) @ ((X0 @ X2) @ X3)))) @ X1))) @ ((cHOL4.sorting.QSORT3 @ X0) @ ((cHOL4.list.FILTER @ (^[X3]: (cHOL4.bool.~ @ ((X0 @ X3) @ X2)))) @ X1)))))))))))) (Tsorting.QSORT3_STABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.transitive @ X0)) @ (cHOL4.relation.total @ X0))) @ ((cHOL4.sorting.STABLE @ cHOL4.sorting.QSORT3) @ X0))))) (Tstate_option.STATE_OPTION_FAIL_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_option.STATE_OPTION_FAIL @ X0)) @ cHOL4.option.NONE)))) (Tstate_option.STATE_OPTION_UNIT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_option.STATE_OPTION_UNIT @ X0) @ X1)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tstate_option.STATE_OPTION_BIND_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.state_option.STATE_OPTION_BIND @ X0) @ X1) @ X2)) @ ((cHOL4.option.OPTION_BIND @ (X0 @ X2)) @ (cHOL4.pair.UNCURRY @ X1)))))))))) (Tstate_option.STATE_OPTION_IGNORE_BIND_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.state_option.STATE_OPTION_IGNORE_BIND @ X0) @ X1) @ X2)) @ ((cHOL4.option.OPTION_BIND @ (X0 @ X2)) @ ((cHOL4.combin.o @ X1) @ cHOL4.pair.SND)))))))))) (Tstate_option.STATE_OPTION_LIFT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_option.STATE_OPTION_LIFT @ X0) @ X1)) @ ((cHOL4.option.OPTION_BIND @ X0) @ (^[X2]: (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X2) @ X1)))))))))) (Tstate_transformer.UNIT_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_transformer.UNIT @ X0)) @ (^[X1]: ((cHOL4.pair.|comma| @ X0) @ X1)))))) (Tstate_transformer.BIND_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.BIND @ X0) @ X1)) @ ((cHOL4.combin.o @ (cHOL4.pair.UNCURRY @ X1)) @ X0))))))) (Tstate_transformer.IGNORE_BIND_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.IGNORE_BIND @ X0) @ X1)) @ ((cHOL4.state_transformer.BIND @ X0) @ (^[X2]: X1)))))))) (Tstate_transformer.MMAP_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.MMAP @ X0) @ X1)) @ ((cHOL4.state_transformer.BIND @ X1) @ ((cHOL4.combin.o @ cHOL4.state_transformer.UNIT) @ X0)))))))) (Tstate_transformer.JOIN_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_transformer.JOIN @ X0)) @ ((cHOL4.state_transformer.BIND @ X0) @ cHOL4.combin.I))))) (Tstate_transformer.FOR_primitive_def,((cHOL4.min.= @ cHOL4.state_transformer.FOR) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X2))) @ ((X0 @ ((cHOL4.pair.|comma| @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X2) @ X1))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X2) @ X1)))))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X3]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X2)) @ (X1 @ X3)) @ ((cHOL4.state_transformer.BIND @ (X1 @ X3)) @ (^[X7]: (X4 @ ((cHOL4.pair.|comma| @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X2) @ X1)))))))))))))))))) (Tstate_transformer.READ_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_transformer.READ @ X0)) @ (^[X1]: ((cHOL4.pair.|comma| @ (X0 @ X1)) @ X1)))))) (Tstate_transformer.WRITE_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_transformer.WRITE @ X0)) @ (^[X1]: ((cHOL4.pair.|comma| @ cHOL4.one.one) @ (X0 @ X1))))))) (Tstate_transformer.NARROW_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.NARROW @ X0) @ X1)) @ (^[X2]: ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.pair.SND @ X4)))))) @ (X1 @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))) (Tstate_transformer.WIDEN_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_transformer.WIDEN @ X0)) @ (cHOL4.pair.UNCURRY @ (^[X1]: (^[X2]: ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X1) @ X4)))))) @ (X0 @ X2))))))))) (Tstate_transformer.sequence_def,((cHOL4.min.= @ cHOL4.state_transformer.sequence) @ ((cHOL4.list.FOLDR @ (^[X0]: (^[X1]: ((cHOL4.state_transformer.BIND @ X0) @ (^[X2]: ((cHOL4.state_transformer.BIND @ X1) @ (^[X3]: (cHOL4.state_transformer.UNIT @ ((cHOL4.list.CONS @ X2) @ X3))))))))) @ (cHOL4.state_transformer.UNIT @ cHOL4.list.NIL)))) (Tstate_transformer.mapM_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.state_transformer.mapM @ X0)) @ ((cHOL4.combin.o @ cHOL4.state_transformer.sequence) @ (cHOL4.list.MAP @ X0)))))) (Tstate_transformer.MWHILE_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.MWHILE @ X0) @ X1)) @ ((cHOL4.state_transformer.BIND @ X0) @ (^[X2]: (((cHOL4.bool.COND @ X2) @ ((cHOL4.state_transformer.IGNORE_BIND @ X1) @ ((cHOL4.state_transformer.MWHILE @ X0) @ X1))) @ (cHOL4.state_transformer.UNIT @ cHOL4.one.one)))))))))) (Tstate_transformer.FOR_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ (X0 @ ((cHOL4.pair.|comma| @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X2) @ X3))))) @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))))))))))))) (Tstate_transformer.FOR_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.state_transformer.FOR @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X0)) @ (X2 @ X1)) @ ((cHOL4.state_transformer.BIND @ (X2 @ X1)) @ (^[X3]: (cHOL4.state_transformer.FOR @ ((cHOL4.pair.|comma| @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))))))) (Tstate_transformer.BIND_LEFT_UNIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.BIND @ (cHOL4.state_transformer.UNIT @ X1)) @ X0)) @ (X0 @ X1))))))) (Tstate_transformer.UNIT_UNCURRY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ cHOL4.state_transformer.UNIT) @ X0)) @ X0)))) (Tstate_transformer.BIND_RIGHT_UNIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.state_transformer.BIND @ X0) @ cHOL4.state_transformer.UNIT)) @ X0)))) (Tstate_transformer.BIND_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.state_transformer.BIND @ X0) @ (^[X3]: ((cHOL4.state_transformer.BIND @ (X1 @ X3)) @ X2)))) @ ((cHOL4.state_transformer.BIND @ ((cHOL4.state_transformer.BIND @ X0) @ X1)) @ X2))))))))) (Tstate_transformer.MMAP_ID,((cHOL4.min.= @ (cHOL4.state_transformer.MMAP @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tstate_transformer.MMAP_COMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.state_transformer.MMAP @ ((cHOL4.combin.o @ X0) @ X1))) @ ((cHOL4.combin.o @ (cHOL4.state_transformer.MMAP @ X0)) @ (cHOL4.state_transformer.MMAP @ X1)))))))) (Tstate_transformer.MMAP_UNIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.state_transformer.MMAP @ X0)) @ cHOL4.state_transformer.UNIT)) @ ((cHOL4.combin.o @ cHOL4.state_transformer.UNIT) @ X0))))) (Tstate_transformer.MMAP_JOIN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.state_transformer.MMAP @ X0)) @ cHOL4.state_transformer.JOIN)) @ ((cHOL4.combin.o @ cHOL4.state_transformer.JOIN) @ (cHOL4.state_transformer.MMAP @ (cHOL4.state_transformer.MMAP @ X0))))))) (Tstate_transformer.JOIN_UNIT,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.state_transformer.JOIN) @ cHOL4.state_transformer.UNIT)) @ cHOL4.combin.I)) (Tstate_transformer.JOIN_MMAP_UNIT,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.state_transformer.JOIN) @ (cHOL4.state_transformer.MMAP @ cHOL4.state_transformer.UNIT))) @ cHOL4.combin.I)) (Tstate_transformer.JOIN_MAP_JOIN,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.state_transformer.JOIN) @ (cHOL4.state_transformer.MMAP @ cHOL4.state_transformer.JOIN))) @ ((cHOL4.combin.o @ cHOL4.state_transformer.JOIN) @ cHOL4.state_transformer.JOIN))) (Tstate_transformer.JOIN_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.state_transformer.BIND @ X0) @ X1)) @ (cHOL4.state_transformer.JOIN @ ((cHOL4.state_transformer.MMAP @ X1) @ X0)))))))) (Tstate_transformer.FST_o_UNIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.pair.FST) @ (cHOL4.state_transformer.UNIT @ X0))) @ (cHOL4.combin.K @ X0))))) (Tstate_transformer.SND_o_UNIT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.pair.SND) @ (cHOL4.state_transformer.UNIT @ X0))) @ cHOL4.combin.I)))) (Tstate_transformer.FST_o_MMAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.pair.FST) @ ((cHOL4.state_transformer.MMAP @ X0) @ X1))) @ ((cHOL4.combin.o @ X0) @ ((cHOL4.combin.o @ cHOL4.pair.FST) @ X1)))))))) (Tstate_transformer.sequence_nil,((cHOL4.min.= @ (cHOL4.state_transformer.sequence @ cHOL4.list.NIL)) @ (cHOL4.state_transformer.UNIT @ cHOL4.list.NIL))) (Tstate_transformer.mapM_nil,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.state_transformer.mapM @ X0) @ cHOL4.list.NIL)) @ (cHOL4.state_transformer.UNIT @ cHOL4.list.NIL))))) (Tstate_transformer.mapM_cons,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.state_transformer.mapM @ X2) @ ((cHOL4.list.CONS @ X1) @ X0))) @ ((cHOL4.state_transformer.BIND @ (X2 @ X1)) @ (^[X3]: ((cHOL4.state_transformer.BIND @ ((cHOL4.state_transformer.mapM @ X2) @ X0)) @ (^[X4]: (cHOL4.state_transformer.UNIT @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))))) (Tstring_num.n2s_primitive_def,((cHOL4.min.= @ cHOL4.string_num.n2s) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.min.= @ X3) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ X2))))) @ ((X0 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ X1)))))))))))) @ (^[X4]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ cHOL4.list.NIL) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.LET @ (^[X5]: ((cHOL4.list.CONS @ (cHOL4.string.CHR @ ((cHOL4.arithmetic.- @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X5))) @ (X4 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ X2)))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))) (Tstring_num.s2n_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string_num.s2n @ cHOL4.list.NIL)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string_num.s2n @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.string_num.s2n @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.string.ORD @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tstring_num.n2s_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ ((cHOL4.min.= @ X3) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ X2))))) @ (X0 @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))) @ (X0 @ X1))))) @ (cHOL4.bool.! @ (^[X4]: (X0 @ X4))))))) (Tstring_num.n2s_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string_num.n2s @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ cHOL4.list.NIL) @ ((cHOL4.bool.LET @ (^[X1]: ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.list.CONS @ (cHOL4.string.CHR @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X3))) @ (cHOL4.string_num.n2s @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X0) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) @ X1)))) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tstring_num.s2n_n2s,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string_num.s2n @ (cHOL4.string_num.n2s @ X0))) @ X0)))) (Tstring_num.n2s_s2n,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string_num.n2s @ (cHOL4.string_num.s2n @ X0))) @ X0)))) (Tstring_num.n2s_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string_num.n2s @ X1)) @ (cHOL4.string_num.n2s @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tstring_num.s2n_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string_num.s2n @ X1)) @ (cHOL4.string_num.s2n @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tstring_num.n2s_onto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.string_num.n2s @ X1))))))) (Tstring_num.s2n_onto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.string_num.s2n @ X1))))))) (Tstring.DEST_STRING_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.DEST_STRING @ cHOL4.list.NIL)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.DEST_STRING @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X0) @ X1))))))))) (Tstring.char_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) @ X0)))) (Tstring.char_BIJ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.CHR @ (cHOL4.string.ORD @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.prim_rec.< @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.string.ORD @ (cHOL4.string.CHR @ X1))) @ X1)))))) (Tstring.isLower_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isLower @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))) (Tstring.isUpper_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isUpper @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tstring.isDigit_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isDigit @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (Tstring.isAlpha_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isAlpha @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.string.isLower @ X0)) @ (cHOL4.string.isUpper @ X0)))))) (Tstring.isHexDigit_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isHexDigit @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Tstring.isAlphaNum_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isAlphaNum @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.string.isAlpha @ X0)) @ (cHOL4.string.isDigit @ X0)))))) (Tstring.isPrint_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isPrint @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.prim_rec.< @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Tstring.isSpace_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isSpace @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.string.ORD @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))) (Tstring.isGraph_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isGraph @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.string.isPrint @ X0)) @ (cHOL4.bool.~ @ (cHOL4.string.isSpace @ X0))))))) (Tstring.isPunct_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isPunct @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.string.isGraph @ X0)) @ (cHOL4.bool.~ @ (cHOL4.string.isAlphaNum @ X0))))))) (Tstring.isAscii_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isAscii @ X0)) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tstring.isCntrl_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.isCntrl @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.arithmetic.<= @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (cHOL4.string.ORD @ X0))))))) (Tstring.toLower_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.toLower @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.string.isUpper @ X0)) @ (cHOL4.string.CHR @ ((cHOL4.arithmetic.+ @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ X0))))) (Tstring.toUpper_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.toUpper @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.string.isLower @ X0)) @ (cHOL4.string.CHR @ ((cHOL4.arithmetic.- @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ X0))))) (Tstring.char_lt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.char_lt @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1)))))))) (Tstring.char_le_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.char_le @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1)))))))) (Tstring.char_gt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.char_gt @ X0) @ X1)) @ ((cHOL4.arithmetic.> @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1)))))))) (Tstring.char_ge_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.char_ge @ X0) @ X1)) @ ((cHOL4.arithmetic.>= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1)))))))) (Tstring.char_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.char_size @ X0)) @ cHOL4.num.0)))) (Tstring.SUB_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.SUB @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.list.EL @ X1) @ X0))))))) (Tstring.STR_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.STR @ X0)) @ ((cHOL4.list.CONS @ X0) @ cHOL4.list.NIL))))) (Tstring.SUBSTRING_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.string.SUBSTRING @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ (((cHOL4.rich_list.SEG @ X2) @ X1) @ X0))))))))) (Tstring.TRANSLATE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.TRANSLATE @ X0) @ X1)) @ (cHOL4.list.FLAT @ ((cHOL4.list.MAP @ X0) @ X1)))))))) (Tstring.TOKENS_tupled_primitive_def,((cHOL4.min.= @ cHOL4.string.TOKENS_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X3) @ ((cHOL4.list.CONS @ X2) @ X1)))) @ (cHOL4.list.NULL @ X4))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.list.TL @ X5))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X3) @ ((cHOL4.list.CONS @ X2) @ X1)))) @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X4)))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ X5)) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X3]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X4)) @ (X6 @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.list.TL @ X5)))) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X3) @ X5)))))))) @ ((cHOL4.rich_list.SPLITP @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))) (Tstring.TOKENS_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.TOKENS @ X0) @ X1)) @ (cHOL4.string.TOKENS_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tstring.FIELDS_tupled_primitive_def,((cHOL4.min.= @ cHOL4.string.FIELDS_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X3) @ ((cHOL4.list.CONS @ X2) @ X1)))) @ (cHOL4.list.NULL @ X4))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.list.TL @ X5))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X3) @ ((cHOL4.list.CONS @ X2) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X4))) @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X5))))) @ ((X0 @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.list.TL @ X5))) @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X3]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ ((cHOL4.list.CONS @ cHOL4.list.NIL) @ cHOL4.list.NIL))) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X4)) @ ((cHOL4.list.CONS @ cHOL4.list.NIL) @ (X6 @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.list.TL @ X5))))) @ (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X5)) @ ((cHOL4.list.CONS @ X4) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X4) @ (X6 @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.list.TL @ X5)))))))))) @ ((cHOL4.rich_list.SPLITP @ X3) @ ((cHOL4.list.CONS @ X2) @ X1))))))))))))))) (Tstring.FIELDS_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.FIELDS @ X0) @ X1)) @ (cHOL4.string.FIELDS_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tstring.IMPLODE_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.string.IMPLODE @ X1))))))))) (Tstring.EXPLODE_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.string.EXPLODE @ X1))))))))) (Tstring.EXTRACT_primitive_def,((cHOL4.min.= @ cHOL4.string.EXTRACT) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: (((cHOL4.option.option_CASE @ X6) @ (cHOL4.combin.I @ (cHOL4.string.SUBSTRING @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X3)) @ X5)))))) @ (^[X7]: (cHOL4.combin.I @ (cHOL4.string.SUBSTRING @ ((cHOL4.pair.|comma| @ X3) @ ((cHOL4.pair.|comma| @ X5) @ X7))))))))))))))))) (Tstring.string_lt_tupled_primitive_def,((cHOL4.min.= @ cHOL4.string.string_lt_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X2) @ X4)) @ ((cHOL4.list.CONS @ X1) @ X3))))))))))))))) @ (^[X5]: (^[X6]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X7]: (^[X8]: (((cHOL4.list.list_CASE @ X8) @ (cHOL4.combin.I @ cHOL4.bool.F)) @ (^[X9]: (^[X10]: (((cHOL4.list.list_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X2]: (^[X4]: (cHOL4.combin.I @ ((cHOL4.bool.\/ @ ((cHOL4.string.char_lt @ X2) @ X9)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X9)) @ (X5 @ ((cHOL4.pair.|comma| @ X4) @ X10))))))))))))))))))) (Tstring.string_lt_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.string_lt @ X0) @ X1)) @ (cHOL4.string.string_lt_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tstring.string_le_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.string_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.string.string_lt @ X0) @ X1)))))))) (Tstring.string_gt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.string_gt @ X0) @ X1)) @ ((cHOL4.string.string_lt @ X1) @ X0))))))) (Tstring.string_ge_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.string_ge @ X0) @ X1)) @ ((cHOL4.string.string_le @ X1) @ X0))))))) (Tstring.IMPLODE_STRING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ X0)) @ (((cHOL4.list.FOLDR @ cHOL4.list.CONS) @ cHOL4.list.NIL) @ X0))))) (Tstring.EXPLODE_DEST_STRING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ X0)) @ (((cHOL4.option.option_CASE @ (cHOL4.string.DEST_STRING @ X0)) @ cHOL4.list.NIL) @ (^[X1]: ((cHOL4.pair.pair_CASE @ X1) @ (^[X2]: (^[X3]: ((cHOL4.list.CONS @ X2) @ (cHOL4.string.EXPLODE @ X3))))))))))) (Tstring.IMPLODE_EQ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X0) @ X1)) @ (cHOL4.string.IMPLODE @ X2))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.string.EXPLODE @ X1))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ X2)) @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.string.EXPLODE @ X1)))))))))))) (Tstring.EXPLODE_EQ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X1) @ X2)) @ (cHOL4.string.EXPLODE @ X0))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X1) @ (cHOL4.string.IMPLODE @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ X0)) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X1) @ (cHOL4.string.IMPLODE @ X2)))))))))))) (Tstring.EXPLODE_EQ_NIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ X0)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.list.NIL) @ (cHOL4.string.EXPLODE @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))) (Tstring.IMPLODE_EQ_EMPTYSTRING,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ X0)) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ cHOL4.list.NIL) @ (cHOL4.string.IMPLODE @ X0))) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)))))) (Tstring.IMPLODE_EQNS,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.string.IMPLODE @ X1))))))))) (Tstring.EXPLODE_EQNS,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.string.EXPLODE @ X1))))))))) (Tstring.DEST_STRING_LEMS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.DEST_STRING @ X2)) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ X2) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.DEST_STRING @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X1) @ X0)))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.list.CONS @ X1) @ X0))))))))))) (Tstring.STRLEN_EXPLODE_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ (cHOL4.string.EXPLODE @ X0)))))) (Tstring.ORD_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Tstring.CHR_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.CHR @ X0)) @ (cHOL4.string.CHR @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Tstring.ORD_ONTO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.string.ORD @ X1)))))))) (Tstring.CHR_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tstring.CHR_ORD,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.CHR @ (cHOL4.string.ORD @ X0))) @ X0)))) (Tstring.ORD_CHR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.min.= @ (cHOL4.string.ORD @ (cHOL4.string.CHR @ X0))) @ X0))))) (Tstring.ORD_CHR_RWT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ ((cHOL4.min.= @ (cHOL4.string.ORD @ (cHOL4.string.CHR @ X0))) @ X0))))) (Tstring.ORD_CHR_COMPUTE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.string.ORD @ (cHOL4.string.CHR @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ X1) @ (((cHOL4.combin.FAIL @ cHOL4.string.ORD) @ X0) @ (cHOL4.string.CHR @ X1))))))))) (Tstring.ORD_BOUND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ (cHOL4.string.ORD @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Tstring.char_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ X1))))))) (Tstring.ranged_char_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.string.CHR @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Tstring.CHAR_EQ_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1)))))))) (Tstring.CHAR_INDUCT_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (X0 @ (cHOL4.string.CHR @ X1)))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Tstring.TOKENS_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ (cHOL4.list.NULL @ X4))) @ ((X0 @ X1) @ (cHOL4.list.TL @ X5)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X4)))) @ ((X0 @ X1) @ X5)))))))) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tstring.TOKENS_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.string.TOKENS @ X0) @ cHOL4.list.NIL)) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.string.TOKENS @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X3)) @ ((cHOL4.string.TOKENS @ X0) @ (cHOL4.list.TL @ X4))) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.string.TOKENS @ X0) @ X4))))))) @ ((cHOL4.rich_list.SPLITP @ X0) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))))) (Tstring.FIELDS_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ (cHOL4.list.NULL @ X4))) @ ((X0 @ X1) @ (cHOL4.list.TL @ X5)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ ((cHOL4.rich_list.SPLITP @ X1) @ ((cHOL4.list.CONS @ X2) @ X3)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X4))) @ (cHOL4.bool.~ @ (cHOL4.list.NULL @ X5))))) @ ((X0 @ X1) @ (cHOL4.list.TL @ X5))))))))) @ ((X0 @ X1) @ ((cHOL4.list.CONS @ X2) @ X3))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tstring.FIELDS_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.string.FIELDS @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ cHOL4.list.NIL) @ cHOL4.list.NIL))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.string.FIELDS @ X0) @ ((cHOL4.list.CONS @ X2) @ X1))) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X3]: (^[X4]: (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X3)) @ ((cHOL4.list.CONS @ cHOL4.list.NIL) @ ((cHOL4.string.FIELDS @ X0) @ (cHOL4.list.TL @ X4)))) @ (((cHOL4.bool.COND @ (cHOL4.list.NULL @ X4)) @ ((cHOL4.list.CONS @ X3) @ cHOL4.list.NIL)) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.string.FIELDS @ X0) @ (cHOL4.list.TL @ X4))))))))) @ ((cHOL4.rich_list.SPLITP @ X0) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))))) (Tstring.IMPLODE_EXPLODE_I,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ X0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ X0)) @ X0))))) (Tstring.IMPLODE_EXPLODE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ (cHOL4.string.EXPLODE @ X0))) @ X0)))) (Tstring.EXPLODE_IMPLODE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ (cHOL4.string.IMPLODE @ X0))) @ X0)))) (Tstring.EXPLODE_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.string.EXPLODE @ X1))))))) (Tstring.IMPLODE_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.string.IMPLODE @ X1))))))) (Tstring.EXPLODE_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.EXPLODE @ X1)) @ (cHOL4.string.EXPLODE @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tstring.IMPLODE_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.string.IMPLODE @ X1)) @ (cHOL4.string.IMPLODE @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tstring.STRING_ACYCLIC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.list.CONS @ X1) @ X0)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.CONS @ X1) @ X0))))))))) (Tstring.EXTRACT_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.option.NONE)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.option.SOME @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (X0 @ ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))))))))))))) (Tstring.EXTRACT_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.EXTRACT @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X2) @ cHOL4.option.NONE)))) @ (cHOL4.string.SUBSTRING @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.arithmetic.- @ (cHOL4.list.LENGTH @ X0)) @ X2)))))) @ ((cHOL4.min.= @ (cHOL4.string.EXTRACT @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X2) @ (cHOL4.option.SOME @ X1))))) @ (cHOL4.string.SUBSTRING @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X1)))))))))))) (Tstring.STRLEN_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL))))) (Tstring.STRLEN_THM,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ cHOL4.list.NIL)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X1))))))))) (Tstring.STRLEN_DEF,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.list.LENGTH @ cHOL4.list.NIL)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.CONS @ X0) @ X1))) @ (cHOL4.num.SUC @ (cHOL4.list.LENGTH @ X1))))))))) (Tstring.STRCAT_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.CONS @ X3) @ X1)) @ X2)) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.APPEND @ X1) @ X2))))))))))) (Tstring.STRCAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X1) @ X0)) @ ((cHOL4.list.APPEND @ X1) @ X0))))))) (Tstring.STRCAT_EQNS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ cHOL4.list.NIL) @ X2)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X2) @ cHOL4.list.NIL)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ ((cHOL4.list.CONS @ X3) @ X1)) @ X0)) @ ((cHOL4.list.CONS @ X3) @ ((cHOL4.list.APPEND @ X1) @ X0)))))))))))))) (Tstring.STRCAT_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ ((cHOL4.list.APPEND @ X1) @ X2))) @ ((cHOL4.list.APPEND @ ((cHOL4.list.APPEND @ X0) @ X1)) @ X2))))))))) (Tstring.STRCAT_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ ((cHOL4.list.APPEND @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X1) @ X0)) @ ((cHOL4.list.APPEND @ X2) @ X0))) @ ((cHOL4.min.= @ X1) @ X2)))))))))) (Tstring.STRCAT_ACYCLIC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.list.APPEND @ X1) @ X0))) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))) (Tstring.STRCAT_EXPLODE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ (((cHOL4.list.FOLDR @ cHOL4.list.CONS) @ X1) @ (cHOL4.string.EXPLODE @ X0)))))))) (Tstring.STRCAT_EQ_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.list.APPEND @ X0) @ X1)) @ cHOL4.list.NIL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ cHOL4.list.NIL)) @ ((cHOL4.min.= @ X1) @ cHOL4.list.NIL)))))))) (Tstring.STRLEN_CAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.list.LENGTH @ ((cHOL4.list.APPEND @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.list.LENGTH @ X0)) @ (cHOL4.list.LENGTH @ X1)))))))) (Tstring.isPREFIX_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ X0) @ X1)) @ ((cHOL4.pair.pair_CASE @ ((cHOL4.pair.|comma| @ (cHOL4.string.DEST_STRING @ X0)) @ (cHOL4.string.DEST_STRING @ X1))) @ (^[X2]: (^[X3]: (((cHOL4.option.option_CASE @ X2) @ cHOL4.bool.T) @ (^[X4]: (((cHOL4.option.option_CASE @ X3) @ cHOL4.bool.F) @ (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X8]: (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X8) @ X6)) @ ((cHOL4.list.isPREFIX @ X9) @ X7))))))))))))))))))))) (Tstring.isPREFIX_IND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.string.DEST_STRING @ X1)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X3) @ X4)))) @ ((cHOL4.min.= @ (cHOL4.string.DEST_STRING @ X2)) @ (cHOL4.option.SOME @ ((cHOL4.pair.|comma| @ X3) @ X5))))) @ ((X0 @ X4) @ X5))))))))) @ ((X0 @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((X0 @ X6) @ X7))))))))) (Tstring.isPREFIX_STRCAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.list.isPREFIX @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X1) @ ((cHOL4.list.APPEND @ X0) @ X2)))))))))) (Tstring.string_lt_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ X1) @ cHOL4.list.NIL)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X1))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((X0 @ X4) @ X6)) @ ((X0 @ ((cHOL4.list.CONS @ X3) @ X4)) @ ((cHOL4.list.CONS @ X5) @ X6)))))))))))))) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((X0 @ X7) @ X8))))))))) (Tstring.string_lt_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.string.string_lt @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.string.string_lt @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X0))) @ cHOL4.bool.T)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.string.string_lt @ ((cHOL4.list.CONS @ X5) @ X3)) @ ((cHOL4.list.CONS @ X4) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.string.char_lt @ X5) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X4)) @ ((cHOL4.string.string_lt @ X3) @ X2))))))))))))))) (Tstring.string_lt_nonrefl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.string.string_lt @ X0) @ X0))))) (Tstring.string_lt_antisym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.string.string_lt @ X0) @ X1)) @ ((cHOL4.string.string_lt @ X1) @ X0)))))))) (Tstring.string_lt_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.string.string_lt @ X0) @ X1)) @ ((cHOL4.string.string_lt @ X1) @ X0)))))))) (Tstring.string_lt_trans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.string.string_lt @ X0) @ X1)) @ ((cHOL4.string.string_lt @ X1) @ X2))) @ ((cHOL4.string.string_lt @ X0) @ X2))))))))) (Tsum_num.GSUM_tupled_primitive_def,((cHOL4.min.= @ cHOL4.sum_num.GSUM_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((X0 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ (cHOL4.num.SUC @ X2))) @ X1)))))))))))) @ (^[X4]: (^[X5]: ((cHOL4.pair.pair_CASE @ X5) @ (^[X6]: (^[X1]: ((cHOL4.pair.pair_CASE @ X6) @ (^[X3]: (^[X7]: (((cHOL4.arithmetic.num_CASE @ X7) @ (cHOL4.combin.I @ cHOL4.num.0)) @ (^[X2]: (cHOL4.combin.I @ ((cHOL4.arithmetic.+ @ (X4 @ ((cHOL4.pair.|comma| @ ((cHOL4.pair.|comma| @ X3) @ X2)) @ X1))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X2))))))))))))))))) (Tsum_num.GSUM_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ X0) @ X1)) @ (cHOL4.sum_num.GSUM_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Tsum_num.SUM_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.SUM @ X1) @ X0)) @ (X0 @ X1))))))))) (Tsum_num.GSUM_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.num.0)) @ X2)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ X2)) @ ((X0 @ ((cHOL4.pair.|comma| @ X1) @ (cHOL4.num.SUC @ X3))) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((X0 @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6))))))))))) (Tsum_num.GSUM_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.num.0)) @ X1)) @ cHOL4.num.0)))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.num.SUC @ X2))) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X1)) @ (X1 @ ((cHOL4.arithmetic.+ @ X0) @ X2)))))))))))) (Tsum_num.GSUM_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.num.0)) @ X1)) @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ (X1 @ ((cHOL4.arithmetic.+ @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X2)))) @ X1)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2)))) @ X1)) @ (X1 @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X2))))))))))))))) (Tsum_num.GSUM_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ (X1 @ X0))))))) (Tsum_num.GSUM_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2))) @ X3)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X2)) @ X3)))))))))))) (Tsum_num.GSUM_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ X1)))) @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ cHOL4.num.0))))))))) (Tsum_num.GSUM_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X3 @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.num.SUC @ X2))) @ X3)))))))))))) (Tsum_num.GSUM_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X1) @ X0)) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X2) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X3 @ X4)) @ cHOL4.num.0))))))) @ ((cHOL4.prim_rec.< @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X3)))))))))))) (Tsum_num.GSUM_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)) @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ X3))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X1)) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X0) @ X2)))) @ ((cHOL4.min.= @ (X3 @ X4)) @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X0) @ X2)) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X0) @ X1)))) @ ((cHOL4.min.= @ (X3 @ X4)) @ cHOL4.num.0)))))))))))))))) (Tsum_num.GSUM_FUN_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X0) @ X1)))) @ ((cHOL4.min.= @ (X2 @ X4)) @ (X3 @ X4)))))) @ ((cHOL4.min.= @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X3)))))))))))) (Tsum_num.SUM_def_compute,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.SUM @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (X0 @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1))) @ X0)) @ ((cHOL4.arithmetic.+ @ ((cHOL4.sum_num.SUM @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ X0)) @ (X0 @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))))))))))) (Tsum_num.SUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ X0) @ X1)) @ ((cHOL4.sum_num.GSUM @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ X1))))))) (Tsum_num.SUM_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ (X0 @ cHOL4.num.0))))) (Tsum_num.SUM_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X1)) @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ ((cHOL4.sum_num.SUM @ X0) @ X2)) @ ((cHOL4.sum_num.SUM @ (cHOL4.num.SUC @ X1)) @ X2)))))))))) (Tsum_num.SUM_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.num.0))))))) @ ((cHOL4.prim_rec.< @ ((cHOL4.sum_num.SUM @ X0) @ X2)) @ ((cHOL4.sum_num.SUM @ X1) @ X2)))))))))) (Tsum_num.SUM_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ X0) @ X2)) @ ((cHOL4.sum_num.SUM @ X1) @ X2))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ X1))) @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ X0))) @ ((cHOL4.min.= @ (X2 @ X3)) @ cHOL4.num.0)))))))))))))) (Tsum_num.SUM_FUN_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X0)) @ ((cHOL4.min.= @ (X1 @ X3)) @ (X2 @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ X0) @ X1)) @ ((cHOL4.sum_num.SUM @ X0) @ X2)))))))))) (Tsum_num.SUM_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ ((cHOL4.min.= @ (X1 @ X2)) @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ X0) @ X1)) @ cHOL4.num.0))))))) (Tsum_num.SUM_FOLDL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.sum_num.SUM @ X0) @ X1)) @ (((cHOL4.list.FOLDL @ (^[X2]: (^[X0]: ((cHOL4.arithmetic.+ @ (X1 @ X0)) @ X2)))) @ cHOL4.num.0) @ (cHOL4.rich_list.COUNT_LIST @ X0)))))))) (Tsum.IS_SUM_REP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.IS_SUM_REP @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (^[X3]: (^[X4]: (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X1)) @ X3)))))) @ ((cHOL4.min.= @ X0) @ (^[X3]: (^[X4]: (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X5) @ X2)) @ (cHOL4.bool.~ @ X3))))))))))))))) (Tsum.sum_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.sum.IS_SUM_REP) @ X0)))) (Tsum.sum_ISO_DEF,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.ABS_sum @ (cHOL4.sum.REP_sum @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.sum.IS_SUM_REP @ X1)) @ ((cHOL4.min.= @ (cHOL4.sum.REP_sum @ (cHOL4.sum.ABS_sum @ X1))) @ X1)))))) (Tsum.INL_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.INL @ X0)) @ (cHOL4.sum.ABS_sum @ (^[X1]: (^[X2]: (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X0)) @ X1))))))))) (Tsum.INR_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.INR @ X0)) @ (cHOL4.sum.ABS_sum @ (^[X1]: (^[X2]: (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X0)) @ (cHOL4.bool.~ @ X1)))))))))) (Tsum.ISL,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.sum.ISL @ (cHOL4.sum.INL @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (cHOL4.sum.ISL @ (cHOL4.sum.INR @ X1))))))) (Tsum.ISR,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.sum.ISR @ (cHOL4.sum.INR @ X0))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ (cHOL4.sum.ISR @ (cHOL4.sum.INL @ X1))))))) (Tsum.OUTL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.OUTL @ (cHOL4.sum.INL @ X0))) @ X0)))) (Tsum.OUTR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.sum.OUTR @ (cHOL4.sum.INR @ X0))) @ X0)))) (Tsum.sum_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.sum.sum_CASE @ (cHOL4.sum.INL @ X0)) @ X1) @ X2)) @ (X1 @ X0))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.sum.sum_CASE @ (cHOL4.sum.INR @ X3)) @ X1) @ X2)) @ (X2 @ X3)))))))))) (Tsum.SUM_MAP_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.sum.++ @ X0) @ X1) @ (cHOL4.sum.INL @ X2))) @ (cHOL4.sum.INL @ (X0 @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.sum.++ @ X0) @ X1) @ (cHOL4.sum.INR @ X3))) @ (cHOL4.sum.INR @ (X1 @ X3))))))))))) (Tsum.INL_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.sum.INL @ X1)) @ (cHOL4.sum.INL @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tsum.INR_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.sum.INR @ X1)) @ (cHOL4.sum.INR @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Tsum.INR_INL_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.sum.INL @ X1)) @ (cHOL4.sum.INL @ X0))) @ ((cHOL4.min.= @ X1) @ X0))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.sum.INR @ X3)) @ (cHOL4.sum.INR @ X2))) @ ((cHOL4.min.= @ X3) @ X2)))))))) (Tsum.INR_neq_INL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.sum.INR @ X1)) @ (cHOL4.sum.INL @ X0)))))))) (Tsum.sum_axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.?! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.combin.o @ X2) @ cHOL4.sum.INL)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.combin.o @ X2) @ cHOL4.sum.INR)) @ X1))))))))) (Tsum.sum_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (X0 @ (cHOL4.sum.INL @ X1))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.sum.INR @ X2)))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ X3))))))) (Tsum.FORALL_SUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (X0 @ (cHOL4.sum.INL @ X2))))) @ (cHOL4.bool.! @ (^[X3]: (X0 @ (cHOL4.sum.INR @ X3))))))))) (Tsum.EXISTS_SUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: (X0 @ (cHOL4.sum.INL @ X2))))) @ (cHOL4.bool.? @ (^[X3]: (X0 @ (cHOL4.sum.INR @ X3))))))))) (Tsum.sum_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ (cHOL4.sum.INL @ X3))) @ (X0 @ X3))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X2 @ (cHOL4.sum.INR @ X4))) @ (X1 @ X4)))))))))))) (Tsum.sum_CASES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.sum.INL @ X1))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.min.= @ X0) @ (cHOL4.sum.INR @ X2)))))))) (Tsum.sum_distinct,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.sum.INL @ X0)) @ (cHOL4.sum.INR @ X1)))))))) (Tsum.sum_distinct1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.sum.INR @ X1)) @ (cHOL4.sum.INL @ X0)))))))) (Tsum.ISL_OR_ISR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ (cHOL4.sum.ISL @ X0)) @ (cHOL4.sum.ISR @ X0))))) (Tsum.INL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.sum.ISL @ X0)) @ ((cHOL4.min.= @ (cHOL4.sum.INL @ (cHOL4.sum.OUTL @ X0))) @ X0))))) (Tsum.INR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.sum.ISR @ X0)) @ ((cHOL4.min.= @ (cHOL4.sum.INR @ (cHOL4.sum.OUTR @ X0))) @ X0))))) (Tsum.sum_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (cHOL4.sum.INL @ X6))) @ ((cHOL4.min.= @ (X4 @ X6)) @ (X1 @ X6)))))) @ (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X3) @ (cHOL4.sum.INR @ X7))) @ ((cHOL4.min.= @ (X5 @ X7)) @ (X0 @ X7)))))))) @ ((cHOL4.min.= @ (((cHOL4.sum.sum_CASE @ X2) @ X4) @ X5)) @ (((cHOL4.sum.sum_CASE @ X3) @ X1) @ X0)))))))))))))))) (Tsum.SUM_MAP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.sum.++ @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ (cHOL4.sum.ISL @ X2)) @ (cHOL4.sum.INL @ (X0 @ (cHOL4.sum.OUTL @ X2)))) @ (cHOL4.sum.INR @ (X1 @ (cHOL4.sum.OUTR @ X2)))))))))))) (Tsum.SUM_MAP_CASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.sum.++ @ X0) @ X1) @ X2)) @ (((cHOL4.sum.sum_CASE @ X2) @ ((cHOL4.combin.o @ cHOL4.sum.INL) @ X0)) @ ((cHOL4.combin.o @ cHOL4.sum.INR) @ X1)))))))))) (Tsum.SUM_MAP_I,((cHOL4.min.= @ ((cHOL4.sum.++ @ cHOL4.combin.I) @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tsum.cond_sum_expand,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ (cHOL4.sum.INR @ X1)) @ (cHOL4.sum.INL @ X2))) @ (cHOL4.sum.INR @ X3))) @ ((cHOL4.bool./\ @ X0) @ ((cHOL4.min.= @ X3) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ (cHOL4.sum.INR @ X4)) @ (cHOL4.sum.INL @ X5))) @ (cHOL4.sum.INL @ X6))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.min.= @ X6) @ X5)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ (cHOL4.sum.INL @ X7)) @ (cHOL4.sum.INR @ X8))) @ (cHOL4.sum.INL @ X9))) @ ((cHOL4.bool./\ @ X0) @ ((cHOL4.min.= @ X9) @ X7)))))))))) @ (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: (cHOL4.bool.! @ (^[X12]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.bool.COND @ X0) @ (cHOL4.sum.INL @ X10)) @ (cHOL4.sum.INR @ X11))) @ (cHOL4.sum.INR @ X12))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.min.= @ X12) @ X11))))))))))))))) (Tsum.NOT_ISL_ISR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.sum.ISL @ X0))) @ (cHOL4.sum.ISR @ X0))))) (Tsum.NOT_ISR_ISL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.sum.ISR @ X0))) @ (cHOL4.sum.ISL @ X0))))) (Ttc.DRESTR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.tc.|hat|| @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((X0 @ X2) @ X3)))))))))))) (Ttc.RRESTR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.tc.||hat| @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((X0 @ X2) @ X3)))))))))))) (Ttc.BRESTR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.tc.|hat|||hat| @ X0) @ X1)) @ ((cHOL4.tc.||hat| @ ((cHOL4.tc.|hat|| @ X0) @ X1)) @ X1))))))) (Ttc.subTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.tc.subTC @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool.\/ @ ((X0 @ X2) @ X3)) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ ((cHOL4.tc.|hat|||hat| @ X0) @ X1)) @ X4) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X1)) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X4)) @ ((X0 @ X5) @ X3)))))))))))))))))))) (Ttc.FMAP_TO_RELN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.tc.FMAP_TO_RELN @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1)) @ cHOL4.pred_set.EMPTY))))))) (Ttc.RELN_TO_FMAP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.tc.RELN_TO_FMAP @ X0)) @ ((cHOL4.finite_map.FUN_FMAP @ X0) @ (cHOL4.relation.RDOM @ X0)))))) (Ttc.TC_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.tc.TC_MOD @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X0) @ X2)) @ ((cHOL4.pred_set.UNION @ X2) @ X1)) @ X2))))))))) (Ttc.TC_ITER,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.TC_ITER @ cHOL4.list.NIL) @ X0)) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.TC_ITER @ ((cHOL4.list.CONS @ X1) @ X2)) @ X0)) @ ((cHOL4.tc.TC_ITER @ X2) @ ((cHOL4.finite_map.o_f @ ((cHOL4.tc.TC_MOD @ X1) @ ((cHOL4.finite_map.FAPPLY @ X0) @ X1))) @ X0))))))))))) (Ttc.DRESTR_IN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.tc.|hat|| @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ X1)) @ (X0 @ X2)) @ cHOL4.pred_set.EMPTY))))))))) (Ttc.DRESTR_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.|hat|| @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.relation.EMPTY_REL)))) (Ttc.DRESTR_RDOM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.|hat|| @ X0) @ (cHOL4.relation.RDOM @ X0))) @ X0)))) (Ttc.REMPTY_RRESTR,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.||hat| @ cHOL4.relation.EMPTY_REL) @ X0)) @ cHOL4.relation.EMPTY_REL)))) (Ttc.O_REMPTY_O,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.relation.O @ X0) @ cHOL4.relation.EMPTY_REL)) @ cHOL4.relation.EMPTY_REL)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.relation.O @ cHOL4.relation.EMPTY_REL) @ X0)) @ cHOL4.relation.EMPTY_REL))))) (Ttc.subTC_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ X1)) @ ((cHOL4.relation.RUNION @ X0) @ ((cHOL4.relation.O @ X0) @ ((cHOL4.relation.O @ ((cHOL4.tc.|hat|| @ (cHOL4.relation.RTC @ ((cHOL4.tc.|hat|||hat| @ X0) @ X1))) @ X1)) @ X0))))))))) (Ttc.subTC_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ cHOL4.pred_set.EMPTY)) @ X0)))) (Ttc.RTC_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.relation.RTC @ ((cHOL4.tc.|hat|||hat| @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1))) @ X3) @ X4)) @ ((cHOL4.bool.\/ @ (((cHOL4.relation.RTC @ ((cHOL4.tc.|hat|||hat| @ X0) @ X1)) @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X3)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X5) @ X1)) @ ((cHOL4.bool./\ @ (((cHOL4.relation.RTC @ ((cHOL4.tc.|hat|||hat| @ X0) @ X1)) @ X3) @ X5)) @ ((X0 @ X5) @ X2))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ X4)) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X6) @ X1)) @ ((cHOL4.bool./\ @ ((X0 @ X2) @ X6)) @ (((cHOL4.relation.RTC @ ((cHOL4.tc.|hat|||hat| @ X0) @ X1)) @ X6) @ X4)))))))))))))))))))) (Ttc.subTC_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((((cHOL4.tc.subTC @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1)) @ X3) @ X4)) @ ((cHOL4.bool.\/ @ ((((cHOL4.tc.subTC @ X0) @ X1) @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((((cHOL4.tc.subTC @ X0) @ X1) @ X3) @ X2)) @ ((((cHOL4.tc.subTC @ X0) @ X1) @ X2) @ X4))))))))))))))) (Ttc.subTC_RDOM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ (cHOL4.relation.RDOM @ X0))) @ (cHOL4.relation.TC @ X0))))) (Ttc.subTC_INSERT_COR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.tc.subTC @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1)) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X2) @ (((cHOL4.tc.subTC @ X0) @ X1) @ X3))) @ ((cHOL4.pred_set.UNION @ (((cHOL4.tc.subTC @ X0) @ X1) @ X3)) @ (((cHOL4.tc.subTC @ X0) @ X1) @ X2))) @ (((cHOL4.tc.subTC @ X0) @ X1) @ X3)))))))))))) (Ttc.RDOM_SUBSET_FDOM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.pred_set.SUBSET @ (cHOL4.relation.RDOM @ (cHOL4.tc.FMAP_TO_RELN @ X0))) @ (cHOL4.finite_map.FDOM @ X0))))) (Ttc.FINITE_RDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ (cHOL4.relation.RDOM @ (cHOL4.tc.FMAP_TO_RELN @ X0)))))) (Ttc.FDOM_RDOM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ (cHOL4.relation.RDOM @ X0))) @ ((cHOL4.min.= @ (cHOL4.finite_map.FDOM @ (cHOL4.tc.RELN_TO_FMAP @ X0))) @ (cHOL4.relation.RDOM @ X0)))))) (Ttc.RELN_TO_FMAP_TO_RELN_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ (cHOL4.relation.RDOM @ X0))) @ ((cHOL4.min.= @ (cHOL4.tc.FMAP_TO_RELN @ (cHOL4.tc.RELN_TO_FMAP @ X0))) @ X0))))) (Ttc.RDOM_subTC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.relation.RDOM @ ((cHOL4.tc.subTC @ X0) @ X1))) @ (cHOL4.relation.RDOM @ X0))))))) (Ttc.NOT_IN_RDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ (cHOL4.relation.RDOM @ X0))))))))) (Ttc.TC_MOD_EMPTY_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.tc.TC_MOD @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.combin.I)))))) (Ttc.I_o_f,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.finite_map.o_f @ cHOL4.combin.I) @ X0)) @ X0)))) (Ttc.subTC_MAX_RDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.relation.RDOM @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1))) @ ((cHOL4.tc.subTC @ X0) @ X1)))))))))) (Ttc.subTC_SUPERSET_RDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ ((cHOL4.pred_set.UNION @ (cHOL4.relation.RDOM @ X0)) @ X1))) @ ((cHOL4.tc.subTC @ X0) @ (cHOL4.relation.RDOM @ X0))))))))) (Ttc.subTC_FDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X1) @ (cHOL4.relation.RDOM @ X1))) @ (cHOL4.tc.FMAP_TO_RELN @ X0))) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X1) @ (cHOL4.finite_map.FDOM @ X0))) @ ((cHOL4.tc.subTC @ X1) @ (cHOL4.relation.RDOM @ X1))))))))) (Ttc.SUBSET_FDOM_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ X1)) @ (cHOL4.tc.FMAP_TO_RELN @ X2))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.relation.RDOM @ X0)) @ (cHOL4.finite_map.FDOM @ X2)))))))))) (Ttc.subTC_FDOM_RDOM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ (cHOL4.finite_map.FDOM @ X1))) @ (cHOL4.tc.FMAP_TO_RELN @ X1))) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ (cHOL4.relation.RDOM @ X0))) @ (cHOL4.tc.FMAP_TO_RELN @ X1)))))))) (Ttc.TC_MOD_LEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ (cHOL4.finite_map.FDOM @ X3))) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ X1)) @ (cHOL4.tc.FMAP_TO_RELN @ X3)))) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ ((cHOL4.pred_set.INSERT @ X2) @ X1))) @ (cHOL4.tc.FMAP_TO_RELN @ ((cHOL4.finite_map.o_f @ ((cHOL4.tc.TC_MOD @ X2) @ ((cHOL4.finite_map.FAPPLY @ X3) @ X2))) @ X3))))))))))))) (Ttc.TC_ITER_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.UNION @ X3) @ (cHOL4.list.LIST_TO_SET @ X1))) @ (cHOL4.finite_map.FDOM @ X2))) @ ((cHOL4.min.= @ ((cHOL4.tc.subTC @ X0) @ X3)) @ (cHOL4.tc.FMAP_TO_RELN @ X2)))) @ ((cHOL4.min.= @ (cHOL4.relation.TC @ X0)) @ (cHOL4.tc.FMAP_TO_RELN @ ((cHOL4.tc.TC_ITER @ X1) @ X2))))))))))))) (TTemporal_Logic.NEXT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (^[X1]: (X0 @ (cHOL4.num.SUC @ X1))))))) (TTemporal_Logic.ALWAYS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.ALWAYS @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: (X0 @ ((cHOL4.arithmetic.+ @ X2) @ X1)))))))))) (TTemporal_Logic.EVENTUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X0) @ X1)) @ (cHOL4.bool.? @ (^[X2]: (X0 @ ((cHOL4.arithmetic.+ @ X2) @ X1)))))))))) (TTemporal_Logic.WATCH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WATCH @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.bool.F)) @ ((cHOL4.min.= @ (X0 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X3) @ X2)))) @ ((cHOL4.bool.\/ @ (X0 @ ((cHOL4.arithmetic.+ @ X3) @ X2))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X2))))))))))))))) (TTemporal_Logic.UPTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.prim_rec.< @ X3) @ X1))) @ (X2 @ X3)))))))))))) (TTemporal_Logic.WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ ((cHOL4.min.==> @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))))))))))))) (TTemporal_Logic.UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ ((cHOL4.bool.\/ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))))))))))))) (TTemporal_Logic.BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X2)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))))))))))))) (TTemporal_Logic.SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))))))))))))) (TTemporal_Logic.SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ ((cHOL4.bool.\/ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))) @ (cHOL4.bool.? @ (^[X4]: (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))))))))))))))) (TTemporal_Logic.SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2)))) @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))))))))))))))) (TTemporal_Logic.WATCH_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (((cHOL4.Temporal_Logic.WATCH @ X2) @ X0) @ X1)))))))) (TTemporal_Logic.WELL_ORDER,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ X2)) @ (cHOL4.bool.~ @ (X0 @ X1)))))))))))) (TTemporal_Logic.WELL_ORDER_UNIQUE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (X2 @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X1)) @ (cHOL4.bool.~ @ (X2 @ X3))))))) @ ((cHOL4.bool./\ @ (X2 @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X0)) @ (cHOL4.bool.~ @ (X2 @ X3)))))))) @ ((cHOL4.min.= @ X1) @ X0))))))))) (TTemporal_Logic.DELTA_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0)))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0))))))))))) (TTemporal_Logic.WHEN_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.min.==> @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.UNTIL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool.\/ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.BEFORE_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.SWHEN_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.SUNTIL_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ ((cHOL4.bool.\/ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (cHOL4.bool.? @ (^[X4]: (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))) (TTemporal_Logic.SBEFORE_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.ALWAYS_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0)))))))))) (TTemporal_Logic.EVENTUAL_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: (X1 @ ((cHOL4.arithmetic.+ @ X2) @ X0)))))))))) (TTemporal_Logic.WATCH_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WATCH @ X1) @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X4)) @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X4)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ (cHOL4.bool.! @ (^[X3]: (X1 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))))) (TTemporal_Logic.WHEN_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))))))))) (TTemporal_Logic.UNTIL_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.! @ (^[X3]: (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X4)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X4)) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))))))))))))) (TTemporal_Logic.BEFORE_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))) (TTemporal_Logic.SWHEN_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))))))))))))) (TTemporal_Logic.SUNTIL_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))))))))) (TTemporal_Logic.SBEFORE_SIGNAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X4) @ X3)) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.NEXT_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X0) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X3)) @ ((cHOL4.arithmetic.<= @ X2) @ X3))))) @ (X1 @ X2))))))))))) (TTemporal_Logic.ALWAYS_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X2)) @ (X1 @ X2)))))))))) (TTemporal_Logic.EVENTUAL_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X2)) @ (X1 @ X2)))))))))) (TTemporal_Logic.SUNTIL_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X2))))))))))))))) (TTemporal_Logic.UNTIL_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X3) @ (^[X4]: (cHOL4.bool.~ @ (X1 @ X4))))))))) @ (X2 @ X3)))))))))))) (TTemporal_Logic.SBEFORE_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X3) @ (^[X4]: (cHOL4.bool.~ @ (X1 @ X4))))))))))))))))))) (TTemporal_Logic.BEFORE_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X3) @ (^[X4]: (cHOL4.bool.~ @ (X2 @ X4)))))))) @ (cHOL4.bool.~ @ (X1 @ X3))))))))))))) (TTemporal_Logic.SWHEN_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X3) @ (^[X4]: (cHOL4.bool.~ @ (X1 @ X4))))))))))))))))))) (TTemporal_Logic.WHEN_LINORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X3)) @ ((cHOL4.bool./\ @ (X1 @ X3)) @ (cHOL4.Temporal_Logic.UPTO @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X3) @ (^[X4]: (cHOL4.bool.~ @ (X1 @ X4))))))))) @ (X2 @ X3)))))))))))) (TTemporal_Logic.ALWAYS_AS_WHEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ (^[X1]: cHOL4.bool.F)) @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))))))) (TTemporal_Logic.EVENTUAL_AS_WHEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ (^[X1]: cHOL4.bool.F)) @ X0) @ X1))))))) (TTemporal_Logic.UNTIL_AS_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))))))))) (TTemporal_Logic.BEFORE_AS_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))))))))) (TTemporal_Logic.SWHEN_AS_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WHEN @ X1) @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X0) @ X2))))))))) (TTemporal_Logic.SWHEN_AS_NOT_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0)))))))))) (TTemporal_Logic.SUNTIL_AS_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X0) @ X2))))))))) (TTemporal_Logic.SBEFORE_AS_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WHEN @ (^[X3]: (cHOL4.bool.~ @ (X0 @ X3)))) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3)))) @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X2))))))))) (TTemporal_Logic.BEFORE_AS_WHEN_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X1) @ X2)) @ (((cHOL4.Temporal_Logic.WHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X1) @ X2))))))))) (TTemporal_Logic.BEFORE_HW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WATCH @ X3) @ X2) @ X0)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))))))))) (TTemporal_Logic.ALWAYS_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ ((cHOL4.Temporal_Logic.UNTIL @ X0) @ (^[X1]: cHOL4.bool.F)))))) (TTemporal_Logic.EVENTUAL_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))) @ (^[X1]: cHOL4.bool.F)) @ X1))))))) (TTemporal_Logic.WHEN_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))))))))) (TTemporal_Logic.BEFORE_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X3]: (cHOL4.bool.~ @ (X0 @ X3)))) @ X2))))))))) (TTemporal_Logic.SWHEN_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X0) @ X2))))))))) (TTemporal_Logic.SUNTIL_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X0) @ X2))))))))) (TTemporal_Logic.SBEFORE_AS_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))))))))) (TTemporal_Logic.ALWAYS_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X1]: cHOL4.bool.F)) @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))))))) (TTemporal_Logic.EVENTUAL_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.F)) @ X0) @ X1))))))) (TTemporal_Logic.WHEN_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ (X0 @ X3)))) @ X2))) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X3]: (cHOL4.bool.~ @ (X0 @ X3)))) @ X2))))))))) (TTemporal_Logic.UNTIL_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))) @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X2))))))))) (TTemporal_Logic.SWHEN_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (X1 @ X3)) @ (X0 @ X3)))) @ X2))))))))) (TTemporal_Logic.SUNTIL_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))))))))) (TTemporal_Logic.SBEFORE_AS_BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X2))))))))) (TTemporal_Logic.WHEN_SWHEN_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.bool.COND @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: (X0 @ ((cHOL4.arithmetic.+ @ X3) @ X2))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X1) @ X0) @ X4)) @ (((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0) @ X4))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.Temporal_Logic.WHEN @ X1) @ X0) @ ((cHOL4.arithmetic.+ @ X3) @ X2))) @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0) @ ((cHOL4.arithmetic.+ @ X3) @ X2)))))))))))))) (TTemporal_Logic.ALWAYS_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X1]: cHOL4.bool.T)) @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))) @ X1))))))) (TTemporal_Logic.EVENTUAL_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X1]: cHOL4.bool.T)) @ X0))))) (TTemporal_Logic.WHEN_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X2))))))))) (TTemporal_Logic.WHEN_AS_NOT_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0)))))))))) (TTemporal_Logic.UNTIL_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SWHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X2))))))))) (TTemporal_Logic.BEFORE_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X3]: (cHOL4.bool.~ @ (X0 @ X3)))) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3)))) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ (cHOL4.bool.~ @ (X0 @ X3))))) @ X2))))))))) (TTemporal_Logic.BEFORE_AS_NOT_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ X0) @ (^[X3]: ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X0 @ X3)))) @ X2))))))))) (TTemporal_Logic.SUNTIL_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ X0) @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2)))))))))) (TTemporal_Logic.SBEFORE_AS_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2)))))))))) (TTemporal_Logic.ALWAYS_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X1]: cHOL4.bool.T)) @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1)))) @ X1))))))) (TTemporal_Logic.EVENTUAL_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X1]: cHOL4.bool.T)) @ X0))))) (TTemporal_Logic.WHEN_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ X2))))))))) (TTemporal_Logic.UNTIL_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X2))))))))) (TTemporal_Logic.BEFORE_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0) @ X2))))))))) (TTemporal_Logic.SWHEN_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))))))))) (TTemporal_Logic.SBEFORE_AS_SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X2))))))))) (TTemporal_Logic.ALWAYS_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))) @ (^[X2]: cHOL4.bool.F)) @ X1))))))) (TTemporal_Logic.EVENTUAL_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ ((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X1]: cHOL4.bool.F)))))) (TTemporal_Logic.WHEN_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X3))) @ (X0 @ X3)))) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X3]: (cHOL4.bool.~ @ (X0 @ X3)))) @ X2))))))))) (TTemporal_Logic.UNTIL_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))))))))) (TTemporal_Logic.SWHEN_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SBEFORE @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X2))) @ (X0 @ X2)))))))))) (TTemporal_Logic.SUNTIL_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X3]: (cHOL4.bool.~ @ (X1 @ X3)))) @ X0) @ X2))) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X0) @ X2))))))))) (TTemporal_Logic.BEFORE_AS_SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ (^[X2]: ((cHOL4.bool.\/ @ (((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0) @ X2)) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X3]: (cHOL4.bool.~ @ (X0 @ X3)))) @ X2))))))))) (TTemporal_Logic.WHEN_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X1)) @ (^[X2]: cHOL4.bool.T))))))))))) (TTemporal_Logic.UNTIL_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ (^[X2]: cHOL4.bool.F))) @ (cHOL4.Temporal_Logic.ALWAYS @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X1)) @ (^[X2]: (X1 @ X2)))))))))))) (TTemporal_Logic.BEFORE_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X1)) @ (cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))))))))))))) (TTemporal_Logic.SWHEN_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (cHOL4.Temporal_Logic.EVENTUAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: (X1 @ X2)))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X1)) @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))))))))))) (TTemporal_Logic.SUNTIL_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (cHOL4.Temporal_Logic.EVENTUAL @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ (^[X2]: cHOL4.bool.F))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.T))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X1)) @ (^[X2]: (X1 @ X2)))))))))))) (TTemporal_Logic.SBEFORE_SIMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: cHOL4.bool.F)) @ X0)) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: cHOL4.bool.T)) @ X0)) @ (^[X2]: (cHOL4.bool.~ @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ (^[X2]: cHOL4.bool.F))) @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ (^[X2]: cHOL4.bool.T))) @ (^[X2]: cHOL4.bool.F))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X1)) @ (^[X2]: cHOL4.bool.F))))))))))) (TTemporal_Logic.WHEN_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))))))) (TTemporal_Logic.UNTIL_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))))))) (TTemporal_Logic.BEFORE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))))))) (TTemporal_Logic.SWHEN_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))))))) (TTemporal_Logic.SUNTIL_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))))))) (TTemporal_Logic.SBEFORE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))))))) (TTemporal_Logic.IMMEDIATE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X1 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (X2 @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (X2 @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ cHOL4.bool.T)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ cHOL4.bool.F)))))))))))))) (TTemporal_Logic.NO_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X3) @ X1) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X3) @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.ALWAYS @ X3) @ X0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X3) @ X1) @ X0)) @ cHOL4.bool.T)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X3) @ X1) @ X0)) @ cHOL4.bool.F)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X3) @ X1) @ X0)) @ cHOL4.bool.F)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X3) @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.EVENTUAL @ X3) @ X0))))))))))))))) (TTemporal_Logic.SOME_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)))))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)))))))))))) (TTemporal_Logic.MORE_EVENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.UNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.BEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SUNTIL @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0))) @ ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SBEFORE @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.~ @ (X0 @ X2))))) @ X0)))))))))))) (TTemporal_Logic.NOT_NEXT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1))))) @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X1))))))) (TTemporal_Logic.AND_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))))))))) (TTemporal_Logic.OR_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))))))))) (TTemporal_Logic.IMP_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))))))))) (TTemporal_Logic.EQUIV_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (^[X2]: ((cHOL4.min.= @ (X1 @ X2)) @ (X0 @ X2))))) @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.NEXT @ X1) @ X2)) @ ((cHOL4.Temporal_Logic.NEXT @ X0) @ X2))))))))) (TTemporal_Logic.ALWAYS_NEXT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X0))) @ (cHOL4.Temporal_Logic.ALWAYS @ (cHOL4.Temporal_Logic.NEXT @ X0)))))) (TTemporal_Logic.EVENTUAL_NEXT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.EVENTUAL @ X0))) @ (cHOL4.Temporal_Logic.EVENTUAL @ (cHOL4.Temporal_Logic.NEXT @ X0)))))) (TTemporal_Logic.WHEN_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WHEN @ X0) @ X1))) @ ((cHOL4.Temporal_Logic.WHEN @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (cHOL4.Temporal_Logic.NEXT @ X1)))))))) (TTemporal_Logic.UNTIL_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.UNTIL @ X0) @ X1))) @ ((cHOL4.Temporal_Logic.UNTIL @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (cHOL4.Temporal_Logic.NEXT @ X1)))))))) (TTemporal_Logic.BEFORE_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.BEFORE @ X0) @ X1))) @ ((cHOL4.Temporal_Logic.BEFORE @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (cHOL4.Temporal_Logic.NEXT @ X1)))))))) (TTemporal_Logic.SWHEN_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SWHEN @ X0) @ X1))) @ ((cHOL4.Temporal_Logic.SWHEN @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (cHOL4.Temporal_Logic.NEXT @ X1)))))))) (TTemporal_Logic.SUNTIL_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ X0) @ X1))) @ ((cHOL4.Temporal_Logic.SUNTIL @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (cHOL4.Temporal_Logic.NEXT @ X1)))))))) (TTemporal_Logic.SBEFORE_NEXT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ X0) @ X1))) @ ((cHOL4.Temporal_Logic.SBEFORE @ (cHOL4.Temporal_Logic.NEXT @ X0)) @ (cHOL4.Temporal_Logic.NEXT @ X1)))))))) (TTemporal_Logic.ALWAYS_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X0)) @ ((cHOL4.bool./\ @ (X1 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ X0)))))))) (TTemporal_Logic.EVENTUAL_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ ((cHOL4.bool.\/ @ (X1 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.EVENTUAL @ X1)) @ X0)))))))) (TTemporal_Logic.WATCH_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WATCH @ X1) @ X2) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X0))) @ (((cHOL4.bool.COND @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ (cHOL4.Temporal_Logic.ALWAYS @ X1)) @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WATCH @ X1) @ X2)) @ X0))))))))))) (TTemporal_Logic.WHEN_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (((cHOL4.bool.COND @ (X1 @ X0)) @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ X1)) @ X0)))))))))) (TTemporal_Logic.UNTIL_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X0))) @ ((cHOL4.bool./\ @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1)) @ X0))))))))))) (TTemporal_Logic.BEFORE_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X0))) @ ((cHOL4.bool.\/ @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1)) @ X0))))))))))) (TTemporal_Logic.SWHEN_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ (((cHOL4.bool.COND @ (X1 @ X0)) @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1)) @ X0)))))))))) (TTemporal_Logic.SUNTIL_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X0))) @ ((cHOL4.bool./\ @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1)) @ X0))))))))))) (TTemporal_Logic.SBEFORE_REC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ X0))) @ ((cHOL4.bool.\/ @ (X2 @ X0)) @ ((cHOL4.Temporal_Logic.NEXT @ ((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1)) @ X0))))))))))) (TTemporal_Logic.ALWAYS_FIX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X2]: ((cHOL4.bool./\ @ (X1 @ X2)) @ (X0 @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.ALWAYS @ X1))) @ ((cHOL4.min.= @ X0) @ (^[X2]: cHOL4.bool.F))))))))) (TTemporal_Logic.EVENTUAL_FIX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X2]: ((cHOL4.bool.\/ @ (X1 @ X2)) @ (X0 @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.Temporal_Logic.EVENTUAL @ X1))) @ ((cHOL4.min.= @ X0) @ (^[X2]: cHOL4.bool.T))))))))) (TTemporal_Logic.WHEN_FIX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: (((cHOL4.bool.COND @ (X1 @ X3)) @ (X2 @ X3)) @ (X0 @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.WHEN @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1))))))))))) (TTemporal_Logic.UNTIL_FIX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((cHOL4.bool./\ @ (X2 @ X3)) @ (X0 @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1))))))))))) (TTemporal_Logic.BEFORE_FIX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X0 @ X3))) @ ((cHOL4.bool.\/ @ (X1 @ X3)) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X2) @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0))) @ ((cHOL4.min.= @ X2) @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0))))))))))) (TTemporal_Logic.WHEN_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X5) @ X0))))))))))))))))) (TTemporal_Logic.UNTIL_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ (cHOL4.bool.~ @ (X0 @ ((cHOL4.arithmetic.+ @ X4) @ X2))))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X2))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X2)))))))))))))))))) (TTemporal_Logic.BEFORE_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))))))))))))))) (TTemporal_Logic.ALWAYS_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X2 @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))) (TTemporal_Logic.EVENTUAL_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X2 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ (X2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X2 @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ ((cHOL4.min.= @ (X2 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X3) @ X0)))) @ cHOL4.num.0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X3) @ X0))))))))))))))) (TTemporal_Logic.SWHEN_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))) @ (X2 @ ((cHOL4.arithmetic.+ @ X5) @ X0)))))))))) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X6 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X6 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.min.= @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X6 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.min.= @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ cHOL4.num.0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))))) (TTemporal_Logic.SUNTIL_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))) @ ((cHOL4.bool./\ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X5 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ (X5 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X5 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.min.= @ (X5 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X5 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.min.= @ (X5 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ cHOL4.num.0))) @ (X1 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))))) (TTemporal_Logic.SBEFORE_INVARIANT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X3 @ ((cHOL4.arithmetic.+ @ X4) @ X0))) @ (cHOL4.bool.~ @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0))))) @ (X3 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (X3 @ ((cHOL4.arithmetic.+ @ X5) @ X0))) @ (cHOL4.bool.~ @ (X1 @ ((cHOL4.arithmetic.+ @ X5) @ X0))))))))))) @ (cHOL4.bool.? @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X6 @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ (X6 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.min.= @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (X6 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ ((cHOL4.min.= @ (X6 @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.+ @ X4) @ X0)))) @ cHOL4.num.0))) @ (X2 @ ((cHOL4.arithmetic.+ @ X4) @ X0)))))))))))))))))) (TTemporal_Logic.ALWAYS_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.ALWAYS @ X0)) @ (cHOL4.Temporal_Logic.ALWAYS @ (cHOL4.Temporal_Logic.ALWAYS @ X0)))))) (TTemporal_Logic.EVENTUAL_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)) @ (cHOL4.Temporal_Logic.EVENTUAL @ (cHOL4.Temporal_Logic.EVENTUAL @ X0)))))) (TTemporal_Logic.WHEN_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.WHEN @ ((cHOL4.Temporal_Logic.WHEN @ X1) @ X0)) @ X0))))))) (TTemporal_Logic.UNTIL_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.UNTIL @ ((cHOL4.Temporal_Logic.UNTIL @ X1) @ X0)) @ X0))))))) (TTemporal_Logic.BEFORE_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.BEFORE @ ((cHOL4.Temporal_Logic.BEFORE @ X1) @ X0)) @ X0))))))) (TTemporal_Logic.SWHEN_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SWHEN @ ((cHOL4.Temporal_Logic.SWHEN @ X1) @ X0)) @ X0))))))) (TTemporal_Logic.SUNTIL_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SUNTIL @ ((cHOL4.Temporal_Logic.SUNTIL @ X1) @ X0)) @ X0))))))) (TTemporal_Logic.SBEFORE_IDEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ ((cHOL4.Temporal_Logic.SBEFORE @ ((cHOL4.Temporal_Logic.SBEFORE @ X1) @ X0)) @ X0))))))) (TTemporal_Logic.NOT_ALWAYS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.ALWAYS @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.EVENTUAL @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0))))))) (TTemporal_Logic.NOT_EVENTUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.Temporal_Logic.EVENTUAL @ X1) @ X0))) @ ((cHOL4.Temporal_Logic.ALWAYS @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2)))) @ X0))))))) (TTemporal_Logic.NOT_WHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.WHEN @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.SWHEN @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0))))))))) (TTemporal_Logic.NOT_UNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.UNTIL @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.SBEFORE @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0))))))))) (TTemporal_Logic.NOT_BEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.BEFORE @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.SUNTIL @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0))))))))) (TTemporal_Logic.NOT_SWHEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SWHEN @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.WHEN @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0))))))))) (TTemporal_Logic.NOT_SUNTIL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SUNTIL @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.BEFORE @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0))))))))) (TTemporal_Logic.NOT_SBEFORE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.bool.~ @ (((cHOL4.Temporal_Logic.SBEFORE @ X2) @ X1) @ X0))) @ (((cHOL4.Temporal_Logic.UNTIL @ (^[X3]: (cHOL4.bool.~ @ (X2 @ X3)))) @ X1) @ X0))))))))) (Ttopology.re_Union,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.re_Union @ X0)) @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ (X2 @ X1))))))))) (Ttopology.re_union,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.re_union @ X0) @ X1)) @ (^[X2]: ((cHOL4.bool.\/ @ (X0 @ X2)) @ (X1 @ X2))))))))) (Ttopology.re_intersect,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.re_intersect @ X0) @ X1)) @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ (X1 @ X2))))))))) (Ttopology.re_null,((cHOL4.min.= @ cHOL4.topology.re_null) @ (^[X0]: cHOL4.bool.F))) (Ttopology.re_universe,((cHOL4.min.= @ cHOL4.topology.re_universe) @ (^[X0]: cHOL4.bool.T))) (Ttopology.re_subset,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.re_subset @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (X1 @ X2)))))))))) (Ttopology.re_compl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.re_compl @ X0)) @ (^[X1]: (cHOL4.bool.~ @ (X0 @ X1))))))) (Ttopology.istopology,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.istopology @ X0)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.topology.re_null)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.topology.re_universe)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X1)) @ (X0 @ X2))) @ (X0 @ ((cHOL4.topology.re_intersect @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.topology.re_subset @ X3) @ X0)) @ (X0 @ (cHOL4.topology.re_Union @ X3)))))))))))) (Ttopology.topology_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.topology.istopology) @ X0)))) (Ttopology.topology_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.topology @ (cHOL4.topology.open @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.topology.istopology @ X1)) @ ((cHOL4.min.= @ (cHOL4.topology.open @ (cHOL4.topology.topology @ X1))) @ X1)))))) (Ttopology.neigh,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.topology.neigh @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.topology.re_subset @ X3) @ X1)) @ (X3 @ X2))))))))))))) (Ttopology.closed,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.closed @ X0) @ X1)) @ ((cHOL4.topology.open @ X0) @ (cHOL4.topology.re_compl @ X1)))))))) (Ttopology.limpt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.topology.limpt @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.topology.neigh @ X0) @ ((cHOL4.pair.|comma| @ X3) @ X1))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X4))) @ ((cHOL4.bool./\ @ (X2 @ X4)) @ (X3 @ X4)))))))))))))))) (Ttopology.ismet,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.ismet @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.realax.real_add @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (X0 @ ((cHOL4.pair.|comma| @ X1) @ X3))))))))))))))) (Ttopology.metric_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.topology.ismet) @ X0)))) (Ttopology.metric_tybij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.metric @ (cHOL4.topology.dist @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.topology.ismet @ X1)) @ ((cHOL4.min.= @ (cHOL4.topology.dist @ (cHOL4.topology.metric @ X1))) @ X1)))))) (Ttopology.mtop,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.topology.mtop @ X0)) @ (cHOL4.topology.topology @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X4))) @ X3)) @ (X1 @ X4)))))))))))))))) (Ttopology.ball,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.topology.B @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (^[X3]: ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ X2)))))))))) (Ttopology.mr1,((cHOL4.min.= @ cHOL4.topology.mr1) @ (cHOL4.topology.metric @ (cHOL4.pair.UNCURRY @ (^[X0]: (^[X1]: (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0)))))))) (Ttopology.SUBSET_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.topology.re_subset @ X0) @ X0)))) (Ttopology.COMPL_MEM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (X0 @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.topology.re_compl @ X0) @ X1)))))))) (Ttopology.SUBSET_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool./\ @ ((cHOL4.topology.re_subset @ X0) @ X1)) @ ((cHOL4.topology.re_subset @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Ttopology.SUBSET_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.topology.re_subset @ X0) @ X1)) @ ((cHOL4.topology.re_subset @ X1) @ X2))) @ ((cHOL4.topology.re_subset @ X0) @ X2))))))))) (Ttopology.TOPOLOGY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X0) @ cHOL4.topology.re_null)) @ ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X0) @ cHOL4.topology.re_universe)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X0) @ X1)) @ ((cHOL4.topology.open @ X0) @ X2))) @ ((cHOL4.topology.open @ X0) @ ((cHOL4.topology.re_intersect @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.topology.re_subset @ X3) @ (cHOL4.topology.open @ X0))) @ ((cHOL4.topology.open @ X0) @ (cHOL4.topology.re_Union @ X3))))))))))) (Ttopology.TOPOLOGY_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.topology.re_subset @ X1) @ (cHOL4.topology.open @ X0))) @ ((cHOL4.topology.open @ X0) @ (cHOL4.topology.re_Union @ X1)))))))) (Ttopology.OPEN_OWN_NEIGH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X1) @ X0)) @ (X0 @ X2))) @ ((cHOL4.topology.neigh @ X1) @ ((cHOL4.pair.|comma| @ X0) @ X2)))))))))) (Ttopology.OPEN_UNOPEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.open @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.topology.re_Union @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X1) @ X2)) @ ((cHOL4.topology.re_subset @ X2) @ X0))))) @ X0))))))) (Ttopology.OPEN_SUBOPEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.open @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (X3 @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.topology.open @ X1) @ X3)) @ ((cHOL4.topology.re_subset @ X3) @ X0)))))))))))))) (Ttopology.OPEN_NEIGH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.open @ X1) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.topology.neigh @ X1) @ ((cHOL4.pair.|comma| @ X3) @ X2))) @ ((cHOL4.topology.re_subset @ X3) @ X0))))))))))))) (Ttopology.CLOSED_LIMPT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.closed @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.topology.limpt @ X0) @ X2) @ X1)) @ (X1 @ X2)))))))))) (Ttopology.METRIC_ISMET,(cHOL4.bool.! @ (^[X0]: (cHOL4.topology.ismet @ (cHOL4.topology.dist @ X0))))) (Ttopology.METRIC_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Ttopology.METRIC_SAME,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Ttopology.METRIC_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))) (Ttopology.METRIC_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X1)))))))))) (Ttopology.METRIC_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X3))) @ ((cHOL4.realax.real_add @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (Ttopology.METRIC_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Ttopology.mtop_istopology,(cHOL4.bool.! @ (^[X0]: (cHOL4.topology.istopology @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X1 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X4))) @ X3)) @ (X1 @ X4))))))))))))))) (Ttopology.MTOP_OPEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.open @ (cHOL4.topology.mtop @ X1)) @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X4))) @ X3)) @ (X0 @ X4)))))))))))))))) (Ttopology.BALL_OPEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.topology.open @ (cHOL4.topology.mtop @ X0)) @ ((cHOL4.topology.B @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Ttopology.BALL_NEIGH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.topology.neigh @ (cHOL4.topology.mtop @ X0)) @ ((cHOL4.pair.|comma| @ ((cHOL4.topology.B @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ X1)))))))))) (Ttopology.MTOP_LIMPT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.topology.limpt @ (cHOL4.topology.mtop @ X0)) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X4))) @ ((cHOL4.bool./\ @ (X2 @ X4)) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X4))) @ X3)))))))))))))))) (Ttopology.ISMET_R1,(cHOL4.topology.ismet @ (cHOL4.pair.UNCURRY @ (^[X0]: (^[X1]: (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0))))))) (Ttopology.MR1_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ X1) @ X0)))))))) (Ttopology.MR1_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.realax.real_add @ X0) @ X1)))) @ (cHOL4.real.abs @ X1))))))) (Ttopology.MR1_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.real.real_sub @ X0) @ X1)))) @ (cHOL4.real.abs @ X1))))))) (Ttopology.MR1_ADD_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.realax.real_add @ X0) @ X1)))) @ X1))))))) (Ttopology.MR1_SUB_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.real.real_sub @ X0) @ X1)))) @ X1))))))) (Ttopology.MR1_ADD_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.realax.real_add @ X0) @ X1)))) @ X1))))))) (Ttopology.MR1_SUB_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.real.real_sub @ X0) @ X1)))) @ X1))))))) (Ttopology.MR1_BETWEEN1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X0) @ X2)) @ ((cHOL4.realax.real_lt @ ((cHOL4.topology.dist @ cHOL4.topology.mr1) @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.real.real_sub @ X2) @ X0)))) @ ((cHOL4.realax.real_lt @ X1) @ X2))))))))) (Ttopology.MR1_LIMPT,(cHOL4.bool.! @ (^[X0]: (((cHOL4.topology.limpt @ (cHOL4.topology.mtop @ cHOL4.topology.mr1)) @ X0) @ cHOL4.topology.re_universe)))) (Ttoto.cpn_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X0)))) (Ttoto.cpn_BIJ,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.num2cpn @ (cHOL4.toto.cpn2num @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((^[X2]: ((cHOL4.prim_rec.< @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ (cHOL4.toto.num2cpn @ X1))) @ X1)))))) (Ttoto.cpn_size_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.cpn_size @ X0)) @ cHOL4.num.0)))) (Ttoto.cpn_CASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.toto.cpn_CASE @ X0) @ X1) @ X2) @ X3)) @ ((^[X4]: (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X4) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2) @ X3))) @ (cHOL4.toto.cpn2num @ X0)))))))))))) (Ttoto.TotOrd,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.TotOrd @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ X1) @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ ((X0 @ X2) @ X1)) @ cHOL4.toto.LESS))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((X0 @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ ((X0 @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ ((X0 @ X1) @ X3)) @ cHOL4.toto.LESS)))))))))))))) (Ttoto.TO_of_LinearOrder,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.TO_of_LinearOrder @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X2)) @ cHOL4.toto.EQUAL) @ (((cHOL4.bool.COND @ ((X0 @ X1) @ X2)) @ cHOL4.toto.LESS) @ cHOL4.toto.GREATER)))))))))) (Ttoto.toto_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ cHOL4.toto.TotOrd) @ X0)))) (Ttoto.to_bij,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.TO @ (cHOL4.toto.apto @ X0))) @ X0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.toto.TotOrd @ X1)) @ ((cHOL4.min.= @ (cHOL4.toto.apto @ (cHOL4.toto.TO @ X1))) @ X1)))))) (Ttoto.WeakLinearOrder_of_TO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.WeakLinearOrder_of_TO @ X0) @ X1) @ X2)) @ ((((cHOL4.toto.cpn_CASE @ ((X0 @ X1) @ X2)) @ cHOL4.bool.T) @ cHOL4.bool.T) @ cHOL4.bool.F))))))))) (Ttoto.StrongLinearOrder_of_TO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.StrongLinearOrder_of_TO @ X0) @ X1) @ X2)) @ ((((cHOL4.toto.cpn_CASE @ ((X0 @ X1) @ X2)) @ cHOL4.bool.T) @ cHOL4.bool.F) @ cHOL4.bool.F))))))))) (Ttoto.toto_of_LinearOrder,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.toto_of_LinearOrder @ X0)) @ (cHOL4.toto.TO @ (cHOL4.toto.TO_of_LinearOrder @ X0)))))) (Ttoto.TO_inv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.TO_inv @ X0) @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))))) (Ttoto.toto_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.toto_inv @ X0)) @ (cHOL4.toto.TO @ (cHOL4.toto.TO_inv @ (cHOL4.toto.apto @ X0))))))) (Ttoto.lexTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.toto.lexTO @ X0) @ X1)) @ (cHOL4.toto.TO_of_LinearOrder @ ((cHOL4.pair.LEX @ (cHOL4.toto.StrongLinearOrder_of_TO @ X0)) @ (cHOL4.toto.StrongLinearOrder_of_TO @ X1))))))))) (Ttoto.lextoto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.toto.lextoto @ X0) @ X1)) @ (cHOL4.toto.TO @ ((cHOL4.toto.lexTO @ (cHOL4.toto.apto @ X0)) @ (cHOL4.toto.apto @ X1))))))))) (Ttoto.numOrd,((cHOL4.min.= @ cHOL4.toto.numOrd) @ (cHOL4.toto.TO_of_LinearOrder @ cHOL4.prim_rec.<))) (Ttoto.numto,((cHOL4.min.= @ cHOL4.toto.numto) @ (cHOL4.toto.TO @ cHOL4.toto.numOrd))) (Ttoto.num_dt_TY_DEF,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool.TYPE_DEFINITION @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (((cHOL4.ind_type.CONSTR @ cHOL4.num.0) @ cHOL4.bool.ARB) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X4]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ cHOL4.num.0)) @ cHOL4.bool.ARB) @ ((cHOL4.ind_type.FCONS @ X4) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ X4))) @ (X2 @ X4))))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((^[X4]: (((cHOL4.ind_type.CONSTR @ (cHOL4.num.SUC @ (cHOL4.num.SUC @ cHOL4.num.0))) @ cHOL4.bool.ARB) @ ((cHOL4.ind_type.FCONS @ X4) @ (^[X3]: cHOL4.ind_type.BOTTOM)))) @ X4))) @ (X2 @ X4))))))) @ (X2 @ X1))))) @ (X2 @ X1)))))) @ X0)))) (Ttoto.num_dt_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.toto.num_dt_CASE @ cHOL4.toto.zer) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.toto.num_dt_CASE @ (cHOL4.toto.bit1 @ X3)) @ X0) @ X1) @ X2)) @ (X1 @ X3))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.toto.num_dt_CASE @ (cHOL4.toto.bit2 @ X3)) @ X0) @ X1) @ X2)) @ (X2 @ X3))))))))))))) (Ttoto.num_dt_size_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.toto.num_dt_size @ cHOL4.toto.zer)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.num_dt_size @ (cHOL4.toto.bit1 @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.toto.num_dt_size @ X0)))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.num_dt_size @ (cHOL4.toto.bit2 @ X0))) @ ((cHOL4.arithmetic.+ @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.toto.num_dt_size @ X0)))))))) (Ttoto.num_to_dt_primitive,((cHOL4.min.= @ cHOL4.toto.num_to_dt) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.arithmetic.ODD @ X1))) @ ((X0 @ (cHOL4.arithmetic.DIV2 @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ X1)))) @ ((X0 @ (cHOL4.arithmetic.DIV2 @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X1))))))))) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ cHOL4.num.0)) @ cHOL4.toto.zer) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X1)) @ (cHOL4.toto.bit1 @ (X2 @ (cHOL4.arithmetic.DIV2 @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.toto.bit2 @ (X2 @ (cHOL4.arithmetic.DIV2 @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))) (Ttoto.num_dtOrd_tupled_primitive,((cHOL4.min.= @ cHOL4.toto.num_dtOrd_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.toto.bit1 @ X2)) @ (cHOL4.toto.bit1 @ X1)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.pair.|comma| @ X2) @ X1)) @ ((cHOL4.pair.|comma| @ (cHOL4.toto.bit2 @ X2)) @ (cHOL4.toto.bit2 @ X1)))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: ((((cHOL4.toto.num_dt_CASE @ X5) @ ((((cHOL4.toto.num_dt_CASE @ X6) @ (cHOL4.combin.I @ cHOL4.toto.EQUAL)) @ (^[X2]: (cHOL4.combin.I @ cHOL4.toto.LESS))) @ (^[X7]: (cHOL4.combin.I @ cHOL4.toto.LESS)))) @ (^[X8]: ((((cHOL4.toto.num_dt_CASE @ X6) @ (cHOL4.combin.I @ cHOL4.toto.GREATER)) @ (^[X9]: (cHOL4.combin.I @ (X3 @ ((cHOL4.pair.|comma| @ X8) @ X9))))) @ (^[X1]: (cHOL4.combin.I @ cHOL4.toto.LESS))))) @ (^[X10]: ((((cHOL4.toto.num_dt_CASE @ X6) @ (cHOL4.combin.I @ cHOL4.toto.GREATER)) @ (^[X11]: (cHOL4.combin.I @ cHOL4.toto.GREATER))) @ (^[X12]: (cHOL4.combin.I @ (X3 @ ((cHOL4.pair.|comma| @ X10) @ X12))))))))))))))) (Ttoto.num_dtOrd_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ X0) @ X1)) @ (cHOL4.toto.num_dtOrd_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Ttoto.qk_numOrd_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ X0) @ X1)) @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.num_to_dt @ X0)) @ (cHOL4.toto.num_to_dt @ X1)))))))) (Ttoto.qk_numto,((cHOL4.min.= @ cHOL4.toto.qk_numto) @ (cHOL4.toto.TO @ cHOL4.toto.qk_numOrd))) (Ttoto.charOrd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.toto.charOrd @ X0) @ X1)) @ ((cHOL4.toto.numOrd @ (cHOL4.string.ORD @ X0)) @ (cHOL4.string.ORD @ X1)))))))) (Ttoto.charto,((cHOL4.min.= @ cHOL4.toto.charto) @ (cHOL4.toto.TO @ cHOL4.toto.charOrd))) (Ttoto.listorder_tupled_primitive,((cHOL4.min.= @ cHOL4.toto.listorder_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((X0 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X4) @ X3))) @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ ((cHOL4.list.CONS @ X2) @ X4)) @ ((cHOL4.list.CONS @ X1) @ X3)))))))))))))))))) @ (^[X6]: (^[X7]: ((cHOL4.pair.pair_CASE @ X7) @ (^[X5]: (^[X8]: ((cHOL4.pair.pair_CASE @ X8) @ (^[X4]: (^[X9]: (((cHOL4.list.list_CASE @ X9) @ (cHOL4.combin.I @ cHOL4.bool.F)) @ (^[X1]: (^[X3]: (((cHOL4.list.list_CASE @ X4) @ (cHOL4.combin.I @ cHOL4.bool.T)) @ (^[X2]: (^[X10]: (cHOL4.combin.I @ ((cHOL4.bool.\/ @ ((X5 @ X2) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X1)) @ (X6 @ ((cHOL4.pair.|comma| @ X5) @ ((cHOL4.pair.|comma| @ X10) @ X3))))))))))))))))))))))) (Ttoto.listorder_curried,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.listorder @ X0) @ X1) @ X2)) @ (cHOL4.toto.listorder_tupled @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))))))))))) (Ttoto.ListOrd,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.ListOrd @ X0)) @ (cHOL4.toto.TO_of_LinearOrder @ (cHOL4.toto.listorder @ (cHOL4.toto.StrongLinearOrder_of_TO @ (cHOL4.toto.apto @ X0)))))))) (Ttoto.listoto,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.listoto @ X0)) @ (cHOL4.toto.TO @ (cHOL4.toto.ListOrd @ X0)))))) (Ttoto.stringto,((cHOL4.min.= @ cHOL4.toto.stringto) @ (cHOL4.toto.listoto @ cHOL4.toto.charto))) (Ttoto.imageOrd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.toto.imageOrd @ X0) @ X1) @ X2) @ X3)) @ ((X1 @ (X0 @ X2)) @ (X0 @ X3)))))))))))) (Ttoto.num2cpn_cpn2num,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.num2cpn @ (cHOL4.toto.cpn2num @ X0))) @ X0)))) (Ttoto.cpn2num_num2cpn,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ (cHOL4.toto.num2cpn @ X0))) @ X0))))) (Ttoto.num2cpn_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.toto.num2cpn @ X0)) @ (cHOL4.toto.num2cpn @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Ttoto.cpn2num_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ X0)) @ (cHOL4.toto.cpn2num @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Ttoto.num2cpn_ONTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.toto.num2cpn @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Ttoto.cpn2num_ONTO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.toto.cpn2num @ X1)))))))) (Ttoto.num2cpn_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.toto.num2cpn @ cHOL4.num.0)) @ cHOL4.toto.LESS)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.toto.num2cpn @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ (cHOL4.toto.num2cpn @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.toto.GREATER)))) (Ttoto.cpn2num_thm,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ cHOL4.toto.LESS)) @ cHOL4.num.0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ cHOL4.toto.EQUAL)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ cHOL4.toto.GREATER)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Ttoto.cpn_EQ_cpn,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.toto.cpn2num @ X0)) @ (cHOL4.toto.cpn2num @ X1)))))))) (Ttoto.cpn_case_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.toto.cpn_CASE @ cHOL4.toto.LESS) @ X0) @ X1) @ X2)) @ X0)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.toto.cpn_CASE @ cHOL4.toto.EQUAL) @ X0) @ X1) @ X2)) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((((cHOL4.toto.cpn_CASE @ cHOL4.toto.GREATER) @ X0) @ X1) @ X2)) @ X2)))))))))) (Ttoto.datatype_cpn,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.toto.LESS) @ cHOL4.toto.EQUAL) @ cHOL4.toto.GREATER))))) (Ttoto.cpn_distinct,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.LESS) @ cHOL4.toto.EQUAL))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.LESS) @ cHOL4.toto.GREATER))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.EQUAL) @ cHOL4.toto.GREATER))))) (Ttoto.cpn_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ X5) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ X6) @ X1))) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ X7) @ X0)))))) @ ((cHOL4.min.= @ ((((cHOL4.toto.cpn_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.toto.cpn_CASE @ X4) @ X2) @ X1) @ X0)))))))))))))))))))) (Ttoto.cpn_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.toto.LESS)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ X0) @ cHOL4.toto.GREATER)))))) (Ttoto.cpn_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.toto.LESS)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.toto.EQUAL)) @ X1)) @ ((cHOL4.min.= @ (X3 @ cHOL4.toto.GREATER)) @ X2)))))))))))) (Ttoto.cpn_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.toto.EQUAL)) @ ((cHOL4.bool./\ @ (X0 @ cHOL4.toto.GREATER)) @ (X0 @ cHOL4.toto.LESS)))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Ttoto.all_cpn_distinct,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.LESS) @ cHOL4.toto.EQUAL))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.LESS) @ cHOL4.toto.GREATER))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.EQUAL) @ cHOL4.toto.GREATER))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.EQUAL) @ cHOL4.toto.LESS))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.GREATER) @ cHOL4.toto.LESS))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.GREATER) @ cHOL4.toto.EQUAL)))))) (Ttoto.TO_apto_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.TO @ (cHOL4.toto.apto @ X0))) @ X0)))) (Ttoto.TO_apto_TO_ID,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.TotOrd @ X0)) @ ((cHOL4.min.= @ (cHOL4.toto.apto @ (cHOL4.toto.TO @ X0))) @ X0))))) (Ttoto.TO_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.toto.TotOrd @ X0)) @ ((cHOL4.min.==> @ (cHOL4.toto.TotOrd @ X1)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.toto.TO @ X0)) @ (cHOL4.toto.TO @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))))) (Ttoto.onto_apto,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.toto.TotOrd @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.toto.apto @ X1)))))))) (Ttoto.TO_onto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.toto.TO @ X1))) @ (cHOL4.toto.TotOrd @ X1))))))) (Ttoto.TotOrd_apto,(cHOL4.bool.! @ (^[X0]: (cHOL4.toto.TotOrd @ (cHOL4.toto.apto @ X0))))) (Ttoto.TO_apto_TO_IMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.toto.TotOrd @ X0)) @ ((cHOL4.min.= @ (cHOL4.toto.apto @ (cHOL4.toto.TO @ X0))) @ X0))))) (Ttoto.toto_equal_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Ttoto.toto_equal_imp_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Ttoto.TO_refl,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.toto.TotOrd @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((X0 @ X1) @ X1)) @ cHOL4.toto.EQUAL))))))) (Ttoto.toto_refl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X1)) @ cHOL4.toto.EQUAL)))))) (Ttoto.toto_equal_sym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.EQUAL))))))))) (Ttoto.toto_antisym,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.LESS))))))))) (Ttoto.toto_not_less_refl,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X1)) @ cHOL4.toto.LESS)) @ cHOL4.bool.F)))))) (Ttoto.toto_swap_cases,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.GREATER) @ cHOL4.toto.EQUAL) @ cHOL4.toto.LESS))))))))) (Ttoto.toto_glneq,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.GREATER)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))))))))))) (Ttoto.toto_cpn_eqn,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ X1) @ X2))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.GREATER)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2)))))))))))) (Ttoto.NOT_EQ_LESS_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.LESS)))))))))) (Ttoto.totoEEtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.EQUAL))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.EQUAL))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.EQUAL))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.EQUAL)))))))))))) (Ttoto.totoLLtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) (Ttoto.totoLGtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.GREATER))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) (Ttoto.totoGGtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.GREATER))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) (Ttoto.totoGLtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) (Ttoto.totoLEtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.EQUAL))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) (Ttoto.totoELtrans,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) (Ttoto.toto_trans_less,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.GREATER))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X3) @ X2)) @ cHOL4.toto.GREATER))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X1)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.EQUAL))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X2)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS))) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X1) @ X3)) @ cHOL4.toto.LESS)))))))))))))))) (Ttoto.TotOrd_TO_of_Strong,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.relation.StrongLinearOrder @ X0)) @ (cHOL4.toto.TotOrd @ (cHOL4.toto.TO_of_LinearOrder @ X0)))))) (Ttoto.toto_equal_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.LinearOrder @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.toto.toto_of_LinearOrder @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ X3)) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.EQUAL)))))))))))) (Ttoto.toto_unequal_imp,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.LinearOrder @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.toto.toto_of_LinearOrder @ X1)))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.min.= @ X2) @ X3)) @ cHOL4.bool.F)) @ (((cHOL4.bool.COND @ ((X1 @ X2) @ X3)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ X0) @ X2) @ X3)) @ cHOL4.toto.GREATER))))))))))))) (Ttoto.StrongOrder_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.relation.StrongOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.irreflexive @ X0)) @ (cHOL4.relation.transitive @ X0)))))) (Ttoto.aplextoto,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (((cHOL4.toto.apto @ ((cHOL4.toto.lextoto @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X2) @ X4)) @ cHOL4.toto.LESS) @ (((cHOL4.toto.apto @ X1) @ X3) @ X5)) @ cHOL4.toto.GREATER))))))))))))))) (Ttoto.TO_numOrd,(cHOL4.toto.TotOrd @ cHOL4.toto.numOrd)) (Ttoto.apnumto_thm,((cHOL4.min.= @ (cHOL4.toto.apto @ cHOL4.toto.numto)) @ cHOL4.toto.numOrd)) (Ttoto.numeralOrd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ cHOL4.num.0) @ cHOL4.num.0)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.toto.LESS)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.toto.LESS)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0)) @ cHOL4.toto.GREATER)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ (cHOL4.arithmetic.BIT2 @ X0)) @ cHOL4.num.0)) @ cHOL4.toto.GREATER)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.toto.numOrd @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.toto.numOrd @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((((cHOL4.toto.cpn_CASE @ ((cHOL4.toto.numOrd @ X0) @ X1)) @ cHOL4.toto.LESS) @ cHOL4.toto.LESS) @ cHOL4.toto.GREATER))) @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((((cHOL4.toto.cpn_CASE @ ((cHOL4.toto.numOrd @ X0) @ X1)) @ cHOL4.toto.LESS) @ cHOL4.toto.GREATER) @ cHOL4.toto.GREATER))))))))))))))) (Ttoto.datatype_num_dt,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.DATATYPE @ (((X0 @ cHOL4.toto.zer) @ cHOL4.toto.bit1) @ cHOL4.toto.bit2))))) (Ttoto.num_dt_11,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.toto.bit1 @ X0)) @ (cHOL4.toto.bit1 @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.toto.bit2 @ X0)) @ (cHOL4.toto.bit2 @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Ttoto.num_dt_distinct,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.zer) @ (cHOL4.toto.bit1 @ X0)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.toto.zer) @ (cHOL4.toto.bit2 @ X0)))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.toto.bit1 @ X0)) @ (cHOL4.toto.bit2 @ X1)))))))))) (Ttoto.num_dt_case_cong,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X3) @ X4)) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ cHOL4.toto.zer)) @ ((cHOL4.min.= @ X5) @ X0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.toto.bit1 @ X8))) @ ((cHOL4.min.= @ (X6 @ X8)) @ (X2 @ X8)))))) @ (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X4) @ (cHOL4.toto.bit2 @ X8))) @ ((cHOL4.min.= @ (X7 @ X8)) @ (X1 @ X8))))))))) @ ((cHOL4.min.= @ ((((cHOL4.toto.num_dt_CASE @ X3) @ X5) @ X6) @ X7)) @ ((((cHOL4.toto.num_dt_CASE @ X4) @ X0) @ X2) @ X1)))))))))))))))))))) (Ttoto.num_dt_nchotomy,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.toto.zer)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.toto.bit1 @ X1))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.toto.bit2 @ X1))))))))) (Ttoto.num_dt_Axiom,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X3 @ cHOL4.toto.zer)) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.toto.bit1 @ X4))) @ ((X1 @ X4) @ (X3 @ X4)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (X3 @ (cHOL4.toto.bit2 @ X4))) @ ((X2 @ X4) @ (X3 @ X4)))))))))))))))) (Ttoto.num_dt_induction,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.toto.zer)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.toto.bit1 @ X1)))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.toto.bit2 @ X1)))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Ttoto.num_dtOrd_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((X0 @ cHOL4.toto.zer) @ cHOL4.toto.zer)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.toto.zer) @ (cHOL4.toto.bit1 @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ cHOL4.toto.zer) @ (cHOL4.toto.bit2 @ X1))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.toto.bit1 @ X1)) @ cHOL4.toto.zer)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((X0 @ (cHOL4.toto.bit2 @ X1)) @ cHOL4.toto.zer)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.toto.bit1 @ X1)) @ (cHOL4.toto.bit2 @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ (cHOL4.toto.bit2 @ X1)) @ (cHOL4.toto.bit1 @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ (cHOL4.toto.bit1 @ X1)) @ (cHOL4.toto.bit1 @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ (cHOL4.toto.bit2 @ X1)) @ (cHOL4.toto.bit2 @ X2)))))))))))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Ttoto.num_dtOrd,((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ cHOL4.toto.zer) @ cHOL4.toto.zer)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ cHOL4.toto.zer) @ (cHOL4.toto.bit1 @ X0))) @ cHOL4.toto.LESS)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ cHOL4.toto.zer) @ (cHOL4.toto.bit2 @ X0))) @ cHOL4.toto.LESS)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.bit1 @ X0)) @ cHOL4.toto.zer)) @ cHOL4.toto.GREATER)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.bit2 @ X0)) @ cHOL4.toto.zer)) @ cHOL4.toto.GREATER)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.bit1 @ X0)) @ (cHOL4.toto.bit2 @ X1))) @ cHOL4.toto.LESS)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.bit2 @ X0)) @ (cHOL4.toto.bit1 @ X1))) @ cHOL4.toto.GREATER)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.bit1 @ X0)) @ (cHOL4.toto.bit1 @ X1))) @ ((cHOL4.toto.num_dtOrd @ X0) @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.toto.num_dtOrd @ (cHOL4.toto.bit2 @ X0)) @ (cHOL4.toto.bit2 @ X1))) @ ((cHOL4.toto.num_dtOrd @ X0) @ X1))))))))))))))) (Ttoto.TO_qk_numOrd,(cHOL4.toto.TotOrd @ cHOL4.toto.qk_numOrd)) (Ttoto.qk_numeralOrd,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ cHOL4.num.0) @ cHOL4.num.0)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.toto.LESS)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ cHOL4.num.0) @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.toto.LESS)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ (cHOL4.arithmetic.BIT1 @ X0)) @ cHOL4.num.0)) @ cHOL4.toto.GREATER)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ (cHOL4.arithmetic.BIT2 @ X0)) @ cHOL4.num.0)) @ cHOL4.toto.GREATER)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ ((cHOL4.toto.qk_numOrd @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ ((cHOL4.toto.qk_numOrd @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ (cHOL4.arithmetic.BIT1 @ X0)) @ (cHOL4.arithmetic.BIT2 @ X1))) @ cHOL4.toto.LESS)) @ ((cHOL4.min.= @ ((cHOL4.toto.qk_numOrd @ (cHOL4.arithmetic.BIT2 @ X0)) @ (cHOL4.arithmetic.BIT1 @ X1))) @ cHOL4.toto.GREATER)))))))))))))) (Ttoto.ap_qk_numto_thm,((cHOL4.min.= @ (cHOL4.toto.apto @ cHOL4.toto.qk_numto)) @ cHOL4.toto.qk_numOrd)) (Ttoto.apcharto_thm,((cHOL4.min.= @ (cHOL4.toto.apto @ cHOL4.toto.charto)) @ cHOL4.toto.charOrd)) (Ttoto.charOrd_lt_lem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ X0) @ X1)) @ cHOL4.toto.LESS)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.toto.charOrd @ (cHOL4.string.CHR @ X0)) @ (cHOL4.string.CHR @ X1))) @ cHOL4.toto.LESS)))))))) (Ttoto.charOrd_gt_lem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ X0) @ X1)) @ cHOL4.toto.GREATER)) @ ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ cHOL4.bool.T)) @ ((cHOL4.min.= @ ((cHOL4.toto.charOrd @ (cHOL4.string.CHR @ X0)) @ (cHOL4.string.CHR @ X1))) @ cHOL4.toto.GREATER)))))))) (Ttoto.charOrd_eq_lem,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.toto.numOrd @ X0) @ X1)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.min.= @ ((cHOL4.toto.charOrd @ (cHOL4.string.CHR @ X0)) @ (cHOL4.string.CHR @ X1))) @ cHOL4.toto.EQUAL))))))) (Ttoto.listorder_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (((X0 @ X1) @ X2) @ cHOL4.list.NIL)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (((X0 @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X3) @ X4))))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (((X0 @ X1) @ X2) @ X4)) @ (((X0 @ X1) @ ((cHOL4.list.CONS @ X5) @ X2)) @ ((cHOL4.list.CONS @ X3) @ X4)))))))))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (((X0 @ X6) @ X7) @ X8))))))))))) (Ttoto.listorder,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.toto.listorder @ X1) @ X0) @ cHOL4.list.NIL)) @ cHOL4.bool.F)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.toto.listorder @ X1) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X2) @ X3))) @ cHOL4.bool.T)))))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.toto.listorder @ X1) @ ((cHOL4.list.CONS @ X4) @ X0)) @ ((cHOL4.list.CONS @ X2) @ X3))) @ ((cHOL4.bool.\/ @ ((X1 @ X4) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X4) @ X2)) @ (((cHOL4.toto.listorder @ X1) @ X0) @ X3))))))))))))))))) (Ttoto.aplistoto,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.toto.apto @ (cHOL4.toto.listoto @ X0)) @ cHOL4.list.NIL) @ cHOL4.list.NIL)) @ cHOL4.toto.EQUAL)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.apto @ (cHOL4.toto.listoto @ X0)) @ cHOL4.list.NIL) @ ((cHOL4.list.CONS @ X1) @ X2))) @ cHOL4.toto.LESS)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.toto.apto @ (cHOL4.toto.listoto @ X0)) @ ((cHOL4.list.CONS @ X3) @ X4)) @ cHOL4.list.NIL)) @ cHOL4.toto.GREATER)))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.toto.apto @ (cHOL4.toto.listoto @ X0)) @ ((cHOL4.list.CONS @ X3) @ X4)) @ ((cHOL4.list.CONS @ X1) @ X2))) @ ((((cHOL4.toto.cpn_CASE @ (((cHOL4.toto.apto @ X0) @ X3) @ X1)) @ cHOL4.toto.LESS) @ (((cHOL4.toto.apto @ (cHOL4.toto.listoto @ X0)) @ X4) @ X2)) @ cHOL4.toto.GREATER)))))))))))))))) (Ttransc.atn,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.atn @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.tan @ X1)) @ X0))))))))) (Ttransc.acs,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.acs @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ cHOL4.transc.pi)) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X1)) @ X0))))))))) (Ttransc.asn,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.asn @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ X1)) @ X0))))))))) (Ttransc.tan,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.tan @ X0)) @ ((cHOL4.real./ @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.cos @ X0)))))) (Ttransc.pi,((cHOL4.min.= @ cHOL4.transc.pi) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Ttransc.sqrt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sqrt @ X0)) @ ((cHOL4.transc.root @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))) (Ttransc.root,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.transc.root @ X0) @ X1)) @ (cHOL4.min.|at| @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X2) @ X0)) @ X1)))))))))) (Ttransc.exp,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.exp @ X0)) @ (cHOL4.seq.suminf @ (^[X1]: ((cHOL4.realax.real_mul @ ((^[X1]: (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1)))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Ttransc.cos,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.seq.suminf @ (^[X1]: ((cHOL4.realax.real_mul @ ((^[X1]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Ttransc.sin,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ X0)) @ (cHOL4.seq.suminf @ (^[X1]: ((cHOL4.realax.real_mul @ ((^[X1]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1))))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1)))))))) (Ttransc.ln,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.ln @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.exp @ X1)) @ X0))))))) (Ttransc.division,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X2 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.realax.real_lt @ (X2 @ X4)) @ (X2 @ (cHOL4.num.SUC @ X4))))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X4) @ X3)) @ ((cHOL4.min.= @ (X2 @ X4)) @ X1)))))))))))))))) (Ttransc.dsize,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.dsize @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ ((cHOL4.realax.real_lt @ (X0 @ X2)) @ (X0 @ (cHOL4.num.SUC @ X2))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X2) @ X1)) @ ((cHOL4.min.= @ (X0 @ X2)) @ (X0 @ X1)))))))))))) (Ttransc.tdiv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (X2 @ X4)) @ (X3 @ X4))) @ ((cHOL4.real.real_lte @ (X3 @ X4)) @ (X2 @ (cHOL4.num.SUC @ X4))))))))))))))))) (Ttransc.gauge,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.transc.gauge @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X1 @ X2))))))))))) (Ttransc.fine,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.transc.dsize @ X1))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.real_sub @ (X1 @ (cHOL4.num.SUC @ X3))) @ (X1 @ X3))) @ (X0 @ (X2 @ X3)))))))))))))) (Ttransc.rsum,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ (cHOL4.transc.dsize @ X0))) @ (^[X3]: ((cHOL4.realax.real_mul @ (X2 @ (X1 @ X3))) @ ((cHOL4.real.real_sub @ (X0 @ (cHOL4.num.SUC @ X3))) @ (X0 @ X3))))))))))))) (Ttransc.Dint,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X4)) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.transc.gauge @ (^[X6]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X6)) @ ((cHOL4.real.real_lte @ X6) @ X1)))) @ X5)) @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X7) @ X8))) @ ((cHOL4.transc.fine @ X5) @ ((cHOL4.pair.|comma| @ X7) @ X8)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ ((cHOL4.real.real_sub @ ((cHOL4.transc.rsum @ ((cHOL4.pair.|comma| @ X7) @ X8)) @ X2)) @ X3))) @ X4)))))))))))))))))))))) (Ttransc.rpow_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ X1)) @ (cHOL4.transc.exp @ ((cHOL4.realax.real_mul @ X1) @ (cHOL4.transc.ln @ X0))))))))) (Ttransc.SIN_COS_SQRT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sin @ X0))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.sqrt @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.cos @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.COS_SIN_SQRT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.cos @ X0))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sqrt @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.sin @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.SIN_ACS_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.transc.acs @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Ttransc.COS_ASN_NZ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.transc.asn @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Ttransc.COS_ATN_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.transc.atn @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Ttransc.COS_SIN_SQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sqrt @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.sin @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.SIN_COS_SQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ cHOL4.transc.pi))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.sqrt @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.cos @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.TAN_SEC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.tan @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.real.pow @ (cHOL4.realax.inv @ (cHOL4.transc.cos @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Ttransc.TAN_ATN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.transc.atn @ (cHOL4.transc.tan @ X0))) @ X0))))) (Ttransc.ATN_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.transc.atn @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.transc.atn @ X0)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Ttransc.ATN_TAN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.tan @ (cHOL4.transc.atn @ X0))) @ X0)))) (Ttransc.ATN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.transc.atn @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.transc.atn @ X0)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.tan @ (cHOL4.transc.atn @ X0))) @ X0)))))) (Ttransc.COS_ACS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ cHOL4.transc.pi))) @ ((cHOL4.min.= @ (cHOL4.transc.acs @ (cHOL4.transc.cos @ X0))) @ X0))))) (Ttransc.ACS_BOUNDS_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.acs @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.transc.acs @ X0)) @ cHOL4.transc.pi)))))) (Ttransc.ACS_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.acs @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.acs @ X0)) @ cHOL4.transc.pi)))))) (Ttransc.ACS_COS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.transc.acs @ X0))) @ X0))))) (Ttransc.ACS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.acs @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.transc.acs @ X0)) @ cHOL4.transc.pi)) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.transc.acs @ X0))) @ X0))))))) (Ttransc.SIN_ASN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.min.= @ (cHOL4.transc.asn @ (cHOL4.transc.sin @ X0))) @ X0))))) (Ttransc.ASN_BOUNDS_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.transc.asn @ X0))) @ ((cHOL4.realax.real_lt @ (cHOL4.transc.asn @ X0)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.ASN_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.transc.asn @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.asn @ X0)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.ASN_SIN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.transc.asn @ X0))) @ X0))))) (Ttransc.ASN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.transc.asn @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.transc.asn @ X0)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.transc.asn @ X0))) @ X0))))))) (Ttransc.TAN_TOTAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.?! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.tan @ X1)) @ X0)))))))) (Ttransc.TAN_TOTAL_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.tan @ X1)) @ X0))))))))) (Ttransc.TAN_TOTAL_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.transc.tan @ X1)))))))))) (Ttransc.DIFF_TAN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (((cHOL4.lim.diffl @ cHOL4.transc.tan) @ (cHOL4.realax.inv @ ((cHOL4.real.pow @ (cHOL4.transc.cos @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))))) (Ttransc.TAN_POS_PI2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.tan @ X0)))))) (Ttransc.TAN_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.transc.tan @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ (cHOL4.transc.tan @ X0))) @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.tan @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) (Ttransc.TAN_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_add @ X0) @ X1))) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.tan @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.real./ @ ((cHOL4.realax.real_add @ (cHOL4.transc.tan @ X0)) @ (cHOL4.transc.tan @ X1))) @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.tan @ X0)) @ (cHOL4.transc.tan @ X1))))))))))) (Ttransc.TAN_PERIODIC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.tan @ ((cHOL4.realax.real_add @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.transc.pi)))) @ (cHOL4.transc.tan @ X0))))) (Ttransc.TAN_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.tan @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.transc.tan @ X0)))))) (Ttransc.TAN_NPI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.tan @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ cHOL4.transc.pi))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Ttransc.TAN_PI,((cHOL4.min.= @ (cHOL4.transc.tan @ cHOL4.transc.pi)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.TAN_0,((cHOL4.min.= @ (cHOL4.transc.tan @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.SIN_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.transc.sin @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))) (Ttransc.COS_ZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ X0) @ (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))))) (Ttransc.SIN_ZERO_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.arithmetic.EVEN @ X1)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))) (Ttransc.COS_ZERO_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.arithmetic.EVEN @ X1))) @ ((cHOL4.min.= @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))))))) (Ttransc.SIN_TOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.?! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.sin @ X1)) @ X0))))))))) (Ttransc.COS_TOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.?! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ cHOL4.transc.pi)) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X1)) @ X0))))))))) (Ttransc.SIN_POS_PI_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ cHOL4.transc.pi))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sin @ X0)))))) (Ttransc.SIN_POS_PI2_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sin @ X0)))))) (Ttransc.COS_POS_PI_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.cos @ X0)))))) (Ttransc.COS_POS_PI2_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.cos @ X0)))))) (Ttransc.SIN_POS_PI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ cHOL4.transc.pi))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sin @ X0)))))) (Ttransc.COS_POS_PI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.cos @ X0)))))) (Ttransc.COS_POS_PI2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.cos @ X0)))))) (Ttransc.SIN_POS_PI2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sin @ X0)))))) (Ttransc.SIN_NPI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ cHOL4.transc.pi))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Ttransc.COS_NPI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ cHOL4.transc.pi))) @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Ttransc.COS_PERIODIC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_add @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.transc.pi)))) @ (cHOL4.transc.cos @ X0))))) (Ttransc.SIN_PERIODIC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ ((cHOL4.realax.real_add @ X0) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ cHOL4.transc.pi)))) @ (cHOL4.transc.sin @ X0))))) (Ttransc.COS_PERIODIC_PI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_add @ X0) @ cHOL4.transc.pi))) @ (cHOL4.realax.real_neg @ (cHOL4.transc.cos @ X0)))))) (Ttransc.SIN_PERIODIC_PI,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ ((cHOL4.realax.real_add @ X0) @ cHOL4.transc.pi))) @ (cHOL4.realax.real_neg @ (cHOL4.transc.sin @ X0)))))) (Ttransc.COS_SIN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ ((cHOL4.real.real_sub @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)))))) (Ttransc.SIN_COS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.cos @ ((cHOL4.real.real_sub @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)))))) (Ttransc.SIN_PI,((cHOL4.min.= @ (cHOL4.transc.sin @ cHOL4.transc.pi)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.COS_PI,((cHOL4.min.= @ (cHOL4.transc.cos @ cHOL4.transc.pi)) @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Ttransc.SIN_PI2,((cHOL4.min.= @ (cHOL4.transc.sin @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Ttransc.PI_POS,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ cHOL4.transc.pi)) (Ttransc.PI2_BOUNDS,((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Ttransc.COS_PI2,((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.PI2,((cHOL4.min.= @ ((cHOL4.real./ @ cHOL4.transc.pi) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))) (Ttransc.COS_ISZERO,(cHOL4.bool.?! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Ttransc.COS_2,((cHOL4.realax.real_lt @ (cHOL4.transc.cos @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.COS_PAIRED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))) @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))))) @ (cHOL4.transc.cos @ X0))))) (Ttransc.SIN_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sin @ X0)))))) (Ttransc.SIN_PAIRED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.real.pow @ X0) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.transc.sin @ X0))))) (Ttransc.COS_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.real.real_sub @ ((cHOL4.real.pow @ (cHOL4.transc.cos @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.sin @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Ttransc.SIN_DOUBLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.cos @ X0))))))) (Ttransc.COS_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.transc.cos @ X0))))) (Ttransc.SIN_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.transc.sin @ X0)))))) (Ttransc.COS_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.cos @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.cos @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.sin @ X1))))))))) (Ttransc.SIN_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.sin @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.cos @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X1))))))))) (Ttransc.SIN_COS_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ ((cHOL4.realax.real_add @ (cHOL4.transc.sin @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.transc.sin @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ ((cHOL4.real.real_sub @ (cHOL4.transc.cos @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.transc.cos @ X0))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Ttransc.SIN_COS_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ ((cHOL4.real.real_sub @ (cHOL4.transc.sin @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.cos @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.sin @ X1))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ ((cHOL4.real.real_sub @ (cHOL4.transc.cos @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ (cHOL4.transc.cos @ X0)) @ (cHOL4.transc.cos @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.sin @ X0)) @ (cHOL4.transc.sin @ X1))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Ttransc.COS_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.transc.cos @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.cos @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Ttransc.COS_BOUND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.transc.cos @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Ttransc.SIN_BOUNDS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.transc.sin @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.sin @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Ttransc.SIN_BOUND,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.abs @ (cHOL4.transc.sin @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Ttransc.SIN_CIRCLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.real.pow @ (cHOL4.transc.sin @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ (cHOL4.transc.cos @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Ttransc.COS_0,((cHOL4.min.= @ (cHOL4.transc.cos @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Ttransc.SIN_0,((cHOL4.min.= @ (cHOL4.transc.sin @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.SQRT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.transc.sqrt @ X1)))))))) (Ttransc.REAL_DIV_SQRT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real./ @ X0) @ (cHOL4.transc.sqrt @ X0))) @ (cHOL4.transc.sqrt @ X0)))))) (Ttransc.SQRT_EVEN_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.sqrt @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Ttransc.SQRT_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ X0) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.transc.sqrt @ X0)) @ (cHOL4.transc.sqrt @ X1)))))))) (Ttransc.SQRT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.transc.sqrt @ ((cHOL4.real./ @ X0) @ X1))) @ ((cHOL4.real./ @ (cHOL4.transc.sqrt @ X0)) @ (cHOL4.transc.sqrt @ X1))))))))) (Ttransc.SQRT_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.sqrt @ (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.inv @ (cHOL4.transc.sqrt @ X0))))))) (Ttransc.SQRT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.transc.sqrt @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.sqrt @ X0)) @ (cHOL4.transc.sqrt @ X1))))))))) (Ttransc.SQRT_POS_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)))) @ ((cHOL4.min.= @ (cHOL4.transc.sqrt @ X0)) @ X1))))))) (Ttransc.POW_2_SQRT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.sqrt @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))))) (Ttransc.SQRT_POW_2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.transc.sqrt @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Ttransc.SQRT_POW2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.transc.sqrt @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Ttransc.SQRT_POS_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sqrt @ X0)))))) (Ttransc.SQRT_POS_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.sqrt @ X0)))))) (Ttransc.SQRT_1,((cHOL4.min.= @ (cHOL4.transc.sqrt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Ttransc.SQRT_0,((cHOL4.min.= @ (cHOL4.transc.sqrt @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.ROOT_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.real.real_lte @ X1) @ X2))) @ ((cHOL4.real.real_lte @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X2)))))))))) (Ttransc.ROOT_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.real./ @ X1) @ X2))) @ ((cHOL4.real./ @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X2))))))))))) (Ttransc.ROOT_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ (cHOL4.realax.inv @ X1))) @ (cHOL4.realax.inv @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1))))))))) (Ttransc.ROOT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)) @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X2))))))))))) (Ttransc.ROOT_POS_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X2) @ (cHOL4.num.SUC @ X0))) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)) @ X2))))))))) (Ttransc.ROOT_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)))))))) (Ttransc.POW_ROOT_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ ((cHOL4.real.pow @ X1) @ (cHOL4.num.SUC @ X0)))) @ X1))))))) (Ttransc.ROOT_POW_POS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)) @ (cHOL4.num.SUC @ X0))) @ X1))))))) (Ttransc.ROOT_POS_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)))))))) (Ttransc.ROOT_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Ttransc.ROOT_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Ttransc.ROOT_LN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.transc.root @ (cHOL4.num.SUC @ X0)) @ X1)) @ (cHOL4.transc.exp @ ((cHOL4.real./ @ (cHOL4.transc.ln @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X0))))))))))) (Ttransc.ROOT_LT_LEMMA,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ (cHOL4.transc.exp @ ((cHOL4.real./ @ (cHOL4.transc.ln @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.num.SUC @ X0))))) @ (cHOL4.num.SUC @ X0))) @ X1))))))) (Ttransc.EXP_CONVERGES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.realax.real_mul @ ((^[X1]: (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1)))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1)))) @ (cHOL4.transc.exp @ X0))))) (Ttransc.SIN_CONVERGES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.realax.real_mul @ ((^[X1]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1))))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1)))) @ (cHOL4.transc.sin @ X0))))) (Ttransc.COS_CONVERGES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.seq.sums @ (^[X1]: ((cHOL4.realax.real_mul @ ((^[X1]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1)))) @ (cHOL4.transc.cos @ X0))))) (Ttransc.EXP_FDIFF,((cHOL4.min.= @ (cHOL4.powser.diffs @ (^[X0]: (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0)))))) @ (^[X0]: (cHOL4.realax.inv @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0)))))) (Ttransc.SIN_FDIFF,((cHOL4.min.= @ (cHOL4.powser.diffs @ (^[X0]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0))))))) @ (^[X0]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Ttransc.COS_FDIFF,((cHOL4.min.= @ (cHOL4.powser.diffs @ (^[X0]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0)))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (^[X0]: (cHOL4.realax.real_neg @ ((^[X0]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X0))))) @ X0))))) (Ttransc.SIN_NEGLEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.transc.sin @ X0))) @ (cHOL4.seq.suminf @ (^[X1]: (cHOL4.realax.real_neg @ ((cHOL4.realax.real_mul @ ((^[X1]: (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ ((cHOL4.real.pow @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.DIV @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1))))) @ X1)) @ ((cHOL4.real.pow @ X0) @ X1))))))))) (Ttransc.DIFF_EXP,(cHOL4.bool.! @ (^[X0]: (((cHOL4.lim.diffl @ cHOL4.transc.exp) @ (cHOL4.transc.exp @ X0)) @ X0)))) (Ttransc.DIFF_SIN,(cHOL4.bool.! @ (^[X0]: (((cHOL4.lim.diffl @ cHOL4.transc.sin) @ (cHOL4.transc.cos @ X0)) @ X0)))) (Ttransc.DIFF_COS,(cHOL4.bool.! @ (^[X0]: (((cHOL4.lim.diffl @ cHOL4.transc.cos) @ (cHOL4.realax.real_neg @ (cHOL4.transc.sin @ X0))) @ X0)))) (Ttransc.DIFF_COMPOSITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X5) @ X3) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X5 @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (((cHOL4.lim.diffl @ (^[X0]: (cHOL4.realax.inv @ (X5 @ X0)))) @ (cHOL4.realax.real_neg @ ((cHOL4.real./ @ X3) @ ((cHOL4.real.pow @ (X5 @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X5) @ X3) @ X0)) @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (X4 @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) @ (((cHOL4.lim.diffl @ (^[X0]: ((cHOL4.real./ @ (X5 @ X0)) @ (X4 @ X0)))) @ ((cHOL4.real./ @ ((cHOL4.real.real_sub @ ((cHOL4.realax.real_mul @ X3) @ (X4 @ X0))) @ ((cHOL4.realax.real_mul @ X2) @ (X5 @ X0)))) @ ((cHOL4.real.pow @ (X4 @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X5) @ X3) @ X0)) @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0))) @ (((cHOL4.lim.diffl @ (^[X0]: ((cHOL4.realax.real_add @ (X5 @ X0)) @ (X4 @ X0)))) @ ((cHOL4.realax.real_add @ X3) @ X2)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X5) @ X3) @ X0)) @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0))) @ (((cHOL4.lim.diffl @ (^[X0]: ((cHOL4.realax.real_mul @ (X5 @ X0)) @ (X4 @ X0)))) @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ X3) @ (X4 @ X0))) @ ((cHOL4.realax.real_mul @ X2) @ (X5 @ X0)))) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X5) @ X3) @ X0)) @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0))) @ (((cHOL4.lim.diffl @ (^[X0]: ((cHOL4.real.real_sub @ (X5 @ X0)) @ (X4 @ X0)))) @ ((cHOL4.real.real_sub @ X3) @ X2)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X5) @ X3) @ X0)) @ (((cHOL4.lim.diffl @ (^[X0]: (cHOL4.realax.real_neg @ (X5 @ X0)))) @ (cHOL4.realax.real_neg @ X3)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0)) @ (((cHOL4.lim.diffl @ (^[X0]: ((cHOL4.real.pow @ (X4 @ X0)) @ X1))) @ ((cHOL4.realax.real_mul @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X1)) @ ((cHOL4.real.pow @ (X4 @ X0)) @ ((cHOL4.arithmetic.- @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X2)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0)) @ (((cHOL4.lim.diffl @ (^[X0]: (cHOL4.transc.exp @ (X4 @ X0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.exp @ (X4 @ X0))) @ X2)) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0)) @ (((cHOL4.lim.diffl @ (^[X0]: (cHOL4.transc.sin @ (X4 @ X0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.cos @ (X4 @ X0))) @ X2)) @ X0))) @ ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X4) @ X2) @ X0)) @ (((cHOL4.lim.diffl @ (^[X0]: (cHOL4.transc.cos @ (X4 @ X0)))) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.real_neg @ (cHOL4.transc.sin @ (X4 @ X0)))) @ X2)) @ X0)))))))))))))))))))))))) (Ttransc.EXP_0,((cHOL4.min.= @ (cHOL4.transc.exp @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Ttransc.EXP_LE_X,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.transc.exp @ X0)))))) (Ttransc.EXP_LT_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.transc.exp @ X0)))))) (Ttransc.EXP_ADD_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.transc.exp @ ((cHOL4.realax.real_add @ X0) @ X1))) @ (cHOL4.transc.exp @ (cHOL4.realax.real_neg @ X0)))) @ (cHOL4.transc.exp @ X1))))))) (Ttransc.EXP_NEG_MUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ (cHOL4.realax.real_neg @ X0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Ttransc.EXP_NEG_MUL2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.transc.exp @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.transc.exp @ X0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Ttransc.EXP_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.exp @ (cHOL4.realax.real_neg @ X0))) @ (cHOL4.realax.inv @ (cHOL4.transc.exp @ X0)))))) (Ttransc.EXP_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.exp @ ((cHOL4.realax.real_add @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ X1)))))))) (Ttransc.EXP_POS_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.exp @ X0))))) (Ttransc.EXP_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.exp @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))) (Ttransc.EXP_POS_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.exp @ X0))))) (Ttransc.EXP_N,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.exp @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ X1))) @ ((cHOL4.real.pow @ (cHOL4.transc.exp @ X1)) @ X0))))))) (Ttransc.EXP_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.exp @ ((cHOL4.real.real_sub @ X0) @ X1))) @ ((cHOL4.real./ @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ X1)))))))) (Ttransc.EXP_MONO_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ X1)))))))) (Ttransc.EXP_MONO_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ X1))))))) (Ttransc.EXP_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ X1))) @ ((cHOL4.real.real_lte @ X0) @ X1))))))) (Ttransc.EXP_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.transc.exp @ X0)) @ (cHOL4.transc.exp @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Ttransc.EXP_TOTAL_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X1) @ ((cHOL4.real.real_sub @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ (cHOL4.transc.exp @ X1)) @ X0))))))))) (Ttransc.EXP_TOTAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ (cHOL4.transc.exp @ X1)) @ X0))))))) (Ttransc.LN_EXP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.transc.ln @ (cHOL4.transc.exp @ X0))) @ X0)))) (Ttransc.EXP_LN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.transc.exp @ (cHOL4.transc.ln @ X0))) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))))) (Ttransc.LN_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.transc.ln @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.transc.ln @ X0)) @ (cHOL4.transc.ln @ X1))))))))) (Ttransc.LN_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.transc.ln @ X0)) @ (cHOL4.transc.ln @ X1))) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Ttransc.LN_1,((cHOL4.min.= @ (cHOL4.transc.ln @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Ttransc.LN_INV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.ln @ (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.transc.ln @ X0))))))) (Ttransc.LN_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.transc.ln @ ((cHOL4.real./ @ X0) @ X1))) @ ((cHOL4.real.real_sub @ (cHOL4.transc.ln @ X0)) @ (cHOL4.transc.ln @ X1))))))))) (Ttransc.LN_MONO_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ (cHOL4.transc.ln @ X0)) @ (cHOL4.transc.ln @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ X1)))))))) (Ttransc.LN_MONO_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ (cHOL4.transc.ln @ X0)) @ (cHOL4.transc.ln @ X1))) @ ((cHOL4.real.real_lte @ X0) @ X1)))))))) (Ttransc.LN_POW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.transc.ln @ ((cHOL4.real.pow @ X1) @ X0))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ (cHOL4.transc.ln @ X1))))))))) (Ttransc.LN_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.transc.ln @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ X0))))) (Ttransc.LN_LT_X,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.transc.ln @ X0)) @ X0))))) (Ttransc.LN_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.transc.ln @ X0)))))) (Ttransc.DIFF_LN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (((cHOL4.lim.diffl @ cHOL4.transc.ln) @ (cHOL4.realax.inv @ X0)) @ X0))))) (Ttransc.DIFF_ASN_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.lim.diffl @ cHOL4.transc.asn) @ (cHOL4.realax.inv @ (cHOL4.transc.cos @ (cHOL4.transc.asn @ X0)))) @ X0))))) (Ttransc.DIFF_ASN,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.lim.diffl @ cHOL4.transc.asn) @ (cHOL4.realax.inv @ (cHOL4.transc.sqrt @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ X0))))) (Ttransc.DIFF_ACS_LEMMA,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.lim.diffl @ cHOL4.transc.acs) @ (cHOL4.realax.inv @ (cHOL4.realax.real_neg @ (cHOL4.transc.sin @ (cHOL4.transc.acs @ X0))))) @ X0))))) (Ttransc.DIFF_ACS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.realax.real_neg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_lt @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (((cHOL4.lim.diffl @ cHOL4.transc.acs) @ (cHOL4.realax.real_neg @ (cHOL4.realax.inv @ (cHOL4.transc.sqrt @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) @ X0))))) (Ttransc.DIFF_ATN,(cHOL4.bool.! @ (^[X0]: (((cHOL4.lim.diffl @ cHOL4.transc.atn) @ (cHOL4.realax.inv @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ X0)))) (Ttransc.DIVISION_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.transc.dsize @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ X0) @ X1)))) @ cHOL4.num.0))))))) (Ttransc.DIVISION_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.transc.dsize @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ X0) @ X1)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Ttransc.DIVISION_SINGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ X0) @ X1))))))))) (Ttransc.DIVISION_LHS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ X1))))))))) (Ttransc.DIVISION_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X0 @ cHOL4.num.0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.transc.dsize @ X0))) @ ((cHOL4.realax.real_lt @ (X0 @ X3)) @ (X0 @ (cHOL4.num.SUC @ X3))))))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X3) @ (cHOL4.transc.dsize @ X0))) @ ((cHOL4.min.= @ (X0 @ X3)) @ X2)))))))))))))) (Ttransc.DIVISION_RHS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.min.= @ (X0 @ (cHOL4.transc.dsize @ X0))) @ X2))))))))) (Ttransc.DIVISION_LT_GEN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X3) @ X4)) @ ((cHOL4.arithmetic.<= @ X4) @ (cHOL4.transc.dsize @ X0))))) @ ((cHOL4.realax.real_lt @ (X0 @ X3)) @ (X0 @ X4)))))))))))))) (Ttransc.DIVISION_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.transc.dsize @ X0))) @ ((cHOL4.realax.real_lt @ (X0 @ cHOL4.num.0)) @ (X0 @ (cHOL4.num.SUC @ X3)))))))))))))) (Ttransc.DIVISION_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.real.real_lte @ X1) @ X2))))))))) (Ttransc.DIVISION_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.transc.dsize @ X0))) @ ((cHOL4.realax.real_lt @ (X0 @ X3)) @ (X0 @ (cHOL4.transc.dsize @ X0)))))))))))))) (Ttransc.DIVISION_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.min.= @ X1) @ X2)) @ ((cHOL4.min.= @ (cHOL4.transc.dsize @ X0)) @ cHOL4.num.0)))))))))) (Ttransc.DIVISION_LBOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ X1) @ (X0 @ X3)))))))))))) (Ttransc.DIVISION_LBOUND_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.transc.dsize @ X0)) @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.realax.real_lt @ X1) @ (X0 @ (cHOL4.num.SUC @ X3))))))))))))) (Ttransc.DIVISION_UBOUND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.real.real_lte @ (X0 @ X3)) @ X2))))))))))) (Ttransc.DIVISION_UBOUND_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.division @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ X0)) @ ((cHOL4.prim_rec.< @ X3) @ (cHOL4.transc.dsize @ X0)))) @ ((cHOL4.realax.real_lt @ (X0 @ X3)) @ X2))))))))))) (Ttransc.DIVISION_APPEND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X2)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X4) @ X5)))))))) @ (cHOL4.bool.? @ (^[X6]: (cHOL4.bool.? @ (^[X7]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ ((cHOL4.pair.|comma| @ X6) @ X7))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X6) @ X7))))))))) @ (cHOL4.bool.? @ (^[X8]: (cHOL4.bool.? @ (^[X9]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ ((cHOL4.pair.|comma| @ X8) @ X9))) @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X8) @ X9))))))))))))))))) (Ttransc.DIVISION_EXISTS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.transc.gauge @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X3)) @ ((cHOL4.real.real_lte @ X3) @ X1)))) @ X2))) @ (cHOL4.bool.? @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.transc.tdiv @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ X4) @ X5))) @ ((cHOL4.transc.fine @ X2) @ ((cHOL4.pair.|comma| @ X4) @ X5))))))))))))))) (Ttransc.GAUGE_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.transc.gauge @ X0) @ X1)) @ ((cHOL4.transc.gauge @ X0) @ X2))) @ ((cHOL4.transc.gauge @ X0) @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (X1 @ X3)) @ (X2 @ X3))) @ (X1 @ X3)) @ (X2 @ X3)))))))))))) (Ttransc.FINE_MIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.transc.fine @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.realax.real_lt @ (X0 @ X4)) @ (X1 @ X4))) @ (X0 @ X4)) @ (X1 @ X4)))) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.bool./\ @ ((cHOL4.transc.fine @ X0) @ ((cHOL4.pair.|comma| @ X2) @ X3))) @ ((cHOL4.transc.fine @ X1) @ ((cHOL4.pair.|comma| @ X2) @ X3))))))))))))) (Ttransc.DINT_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X0) @ X1)) @ ((cHOL4.bool./\ @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X3)) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X0) @ X1)) @ X2) @ X4)))) @ ((cHOL4.min.= @ X3) @ X4))))))))))))) (Ttransc.INTEGRAL_NULL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X1) @ X1)) @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))) (Ttransc.FTC1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X4)) @ ((cHOL4.real.real_lte @ X4) @ X3))) @ (((cHOL4.lim.diffl @ X0) @ (X1 @ X4)) @ X4)))))) @ (((cHOL4.transc.Dint @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1) @ ((cHOL4.real.real_sub @ (X0 @ X3)) @ (X0 @ X2))))))))))))) (Ttransc.MCLAURIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ ((cHOL4.real.real_lte @ X5) @ X2)))) @ (((cHOL4.lim.diffl @ (X1 @ X4)) @ ((X1 @ (cHOL4.num.SUC @ X4)) @ X5)) @ X5)))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X5) @ X2)) @ ((cHOL4.min.= @ (X0 @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X3)) @ (^[X4]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X4) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X4)))) @ ((cHOL4.real.pow @ X2) @ X4))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X3) @ X5)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X3)))) @ ((cHOL4.real.pow @ X2) @ X3)))))))))))))))))) (Ttransc.MCLAURIN_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X4) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ X2) @ X5)) @ ((cHOL4.real.real_lte @ X5) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (((cHOL4.lim.diffl @ (X1 @ X4)) @ ((X1 @ (cHOL4.num.SUC @ X4)) @ X5)) @ X5)))))))))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X2) @ X5)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ X5) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ (X0 @ X2)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X3)) @ (^[X4]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X4) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X4)))) @ ((cHOL4.real.pow @ X2) @ X4))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X3) @ X5)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X3)))) @ ((cHOL4.real.pow @ X2) @ X3)))))))))))))))))) (Ttransc.MCLAURIN_ALL_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((cHOL4.lim.diffl @ (X1 @ X2)) @ ((X1 @ (cHOL4.num.SUC @ X2)) @ X3)) @ X3))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X4))) @ (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X5))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X5)) @ (cHOL4.real.abs @ X3))) @ ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X4)) @ (^[X2]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X2)))) @ ((cHOL4.real.pow @ X3) @ X2))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X4) @ X5)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X4)))) @ ((cHOL4.real.pow @ X3) @ X4))))))))))))))))))) (Ttransc.MCLAURIN_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ (^[X3]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X0 @ X3) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X3)))) @ ((cHOL4.real.pow @ X2) @ X3))))) @ ((X0 @ cHOL4.num.0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))))) (Ttransc.MCLAURIN_ALL_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (X1 @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (((cHOL4.lim.diffl @ (X1 @ X2)) @ ((X1 @ (cHOL4.num.SUC @ X2)) @ X3)) @ X3))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.? @ (^[X5]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X5)) @ (cHOL4.real.abs @ X3))) @ ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X4)) @ (^[X2]: ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X2)))) @ ((cHOL4.real.pow @ X3) @ X2))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ ((X1 @ X4) @ X5)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X4)))) @ ((cHOL4.real.pow @ X3) @ X4))))))))))))))))) (Ttransc.MCLAURIN_EXP_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.real.abs @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.abs @ X2)) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.min.= @ (cHOL4.transc.exp @ X0)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ (^[X3]: ((cHOL4.real./ @ ((cHOL4.real.pow @ X0) @ X3)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X3)))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.transc.exp @ X2)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1)))) @ ((cHOL4.real.pow @ X0) @ X1)))))))))))))) (Ttransc.MCLAURIN_EXP_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.abs @ X2)) @ (cHOL4.real.abs @ X0))) @ ((cHOL4.min.= @ (cHOL4.transc.exp @ X0)) @ ((cHOL4.realax.real_add @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ (^[X3]: ((cHOL4.real./ @ ((cHOL4.real.pow @ X0) @ X3)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X3)))))) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.transc.exp @ X2)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.FACT @ X1)))) @ ((cHOL4.real.pow @ X0) @ X1)))))))))))) (Ttransc.DIFF_LN_COMPOSITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X2)))) @ (((cHOL4.lim.diffl @ (^[X2]: (cHOL4.transc.ln @ (X0 @ X2)))) @ ((cHOL4.realax.real_mul @ (cHOL4.realax.inv @ (X0 @ X2))) @ X1)) @ X2))))))))) (Ttransc.GEN_RPOW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real.pow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X0) @ (cHOL4.real.real_of_num @ X1))))))))) (Ttransc.RPOW_SUC_N,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.realax.real_add @ (cHOL4.real.real_of_num @ X1)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.real.pow @ X0) @ (cHOL4.num.SUC @ X1))))))))) (Ttransc.RPOW_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Ttransc.RPOW_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Ttransc.ONE_RPOW,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Ttransc.RPOW_POS_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.transc.rpow @ X0) @ X1)))))))) (Ttransc.RPOW_NZ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ X1)) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))))))) (Ttransc.LN_RPOW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.transc.ln @ ((cHOL4.transc.rpow @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ X1) @ (cHOL4.transc.ln @ X0))))))))) (Ttransc.RPOW_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.realax.real_mul @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X0) @ X2)))))))))) (Ttransc.RPOW_ADD_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.realax.real_add @ X1) @ X2))) @ ((cHOL4.transc.rpow @ X0) @ (cHOL4.realax.real_neg @ X1)))) @ ((cHOL4.transc.rpow @ X0) @ X2))))))))) (Ttransc.RPOW_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.real.real_sub @ X1) @ X2))) @ ((cHOL4.real./ @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X0) @ X2)))))))))) (Ttransc.RPOW_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ ((cHOL4.real./ @ X0) @ X1)) @ X2)) @ ((cHOL4.real./ @ ((cHOL4.transc.rpow @ X0) @ X2)) @ ((cHOL4.transc.rpow @ X1) @ X2))))))))))) (Ttransc.RPOW_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ (cHOL4.realax.inv @ X0)) @ X1)) @ (cHOL4.realax.inv @ ((cHOL4.transc.rpow @ X0) @ X1))))))))) (Ttransc.RPOW_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ ((cHOL4.realax.real_mul @ X0) @ X1)) @ X2)) @ ((cHOL4.realax.real_mul @ ((cHOL4.transc.rpow @ X0) @ X2)) @ ((cHOL4.transc.rpow @ X1) @ X2))))))))))) (Ttransc.RPOW_RPOW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ ((cHOL4.transc.rpow @ X0) @ X1)) @ X2)) @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))))))))))) (Ttransc.RPOW_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X0) @ X2))) @ ((cHOL4.realax.real_lt @ X1) @ X2)))))))))) (Ttransc.RPOW_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X0) @ X2))) @ ((cHOL4.real.real_lte @ X1) @ X2)))))))))) (Ttransc.BASE_RPOW_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.real.real_lte @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X2) @ X1))) @ ((cHOL4.real.real_lte @ X0) @ X2)))))))))) (Ttransc.BASE_RPOW_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_lt @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X2) @ X1))) @ ((cHOL4.realax.real_lt @ X0) @ X2)))))))))) (Ttransc.RPOW_UNIQ_BASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X2) @ X1)))))) @ ((cHOL4.min.= @ X0) @ X2))))))))) (Ttransc.RPOW_UNIQ_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.transc.rpow @ X0) @ X1)) @ ((cHOL4.transc.rpow @ X0) @ X2)))))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Ttransc.RPOW_DIV_BASE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.real./ @ ((cHOL4.transc.rpow @ X0) @ X1)) @ X0)) @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.real.real_sub @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Ttransc.DIFF_COMPOSITE_EXP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.lim.diffl @ X0) @ X1) @ X2)) @ (((cHOL4.lim.diffl @ (^[X2]: (cHOL4.transc.exp @ (X0 @ X2)))) @ ((cHOL4.realax.real_mul @ (cHOL4.transc.exp @ (X0 @ X2))) @ X1)) @ X2))))))))) (Ttransc.DIFF_RPOW,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (((cHOL4.lim.diffl @ (^[X0]: ((cHOL4.transc.rpow @ X0) @ X1))) @ ((cHOL4.realax.real_mul @ X1) @ ((cHOL4.transc.rpow @ X0) @ ((cHOL4.real.real_sub @ X1) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ X0))))))) (Tupdate.FIND_def,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.update.FIND @ X0) @ cHOL4.list.NIL)) @ cHOL4.option.NONE)))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.update.FIND @ X0) @ ((cHOL4.list.CONS @ X1) @ X2))) @ (((cHOL4.bool.COND @ (X0 @ X1)) @ (cHOL4.option.SOME @ X1)) @ ((cHOL4.update.FIND @ X0) @ X2))))))))))) (Tupdate.OVERRIDE_primitive_def,((cHOL4.min.= @ cHOL4.update.OVERRIDE) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ ((cHOL4.list.FILTER @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X2)) @ (cHOL4.pair.FST @ X3))))) @ X1)) @ ((cHOL4.list.CONS @ X2) @ X1)))))))))) @ (^[X4]: (^[X5]: (((cHOL4.list.list_CASE @ X5) @ (cHOL4.combin.I @ cHOL4.list.NIL)) @ (^[X2]: (^[X1]: (cHOL4.combin.I @ ((cHOL4.list.CONS @ X2) @ (X4 @ ((cHOL4.list.FILTER @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X2)) @ (cHOL4.pair.FST @ X3))))) @ X1)))))))))))) (Tupdate.LIST_UPDATE_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.update.LIST_UPDATE @ cHOL4.list.NIL)) @ cHOL4.combin.I)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.update.LIST_UPDATE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.combin.o @ ((cHOL4.combin.UPDATE @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.SND @ X0))) @ (cHOL4.update.LIST_UPDATE @ X1))))))))) (Tupdate.OVERRIDE_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ ((cHOL4.list.FILTER @ (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.FST @ X3))))) @ X2))) @ (X0 @ ((cHOL4.list.CONS @ X1) @ X2))))))))) @ (cHOL4.bool.! @ (^[X4]: (X0 @ X4))))))) (Tupdate.OVERRIDE_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.update.OVERRIDE @ cHOL4.list.NIL)) @ cHOL4.list.NIL)) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.update.OVERRIDE @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.list.CONS @ X0) @ (cHOL4.update.OVERRIDE @ ((cHOL4.list.FILTER @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.pair.FST @ X0)) @ (cHOL4.pair.FST @ X2))))) @ X1)))))))))) (Tupdate.LIST_UPDATE_LOOKUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.update.LIST_UPDATE @ X0) @ X1) @ X2)) @ (((cHOL4.option.option_CASE @ ((cHOL4.update.FIND @ (^[X3]: ((cHOL4.min.= @ (cHOL4.pair.FST @ X3)) @ X2))) @ X0)) @ (X1 @ X2)) @ (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X5]: (^[X6]: X6))))))))))))) (Tupdate.LIST_UPDATE_OVERRIDE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.update.LIST_UPDATE @ X0)) @ (cHOL4.update.LIST_UPDATE @ (cHOL4.update.OVERRIDE @ X0)))))) (Tupdate.LIST_UPDATE_ALL_DISTINCT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.list.ALL_DISTINCT @ ((cHOL4.list.MAP @ cHOL4.pair.FST) @ X1))) @ ((cHOL4.sorting.PERM @ X0) @ X1))) @ ((cHOL4.min.= @ (cHOL4.update.LIST_UPDATE @ X0)) @ (cHOL4.update.LIST_UPDATE @ X1)))))))) (Tupdate.LIST_UPDATE_SORT_OVERRIDE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.update.LIST_UPDATE @ X1)) @ (cHOL4.update.LIST_UPDATE @ ((cHOL4.sorting.QSORT @ X0) @ (cHOL4.update.OVERRIDE @ X1))))))))) (Tupdate.LIST_UPDATE_THMS,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.combin.o @ ((cHOL4.combin.UPDATE @ X0) @ X2)) @ ((cHOL4.combin.UPDATE @ X1) @ X3))) @ (cHOL4.update.LIST_UPDATE @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X0) @ X2)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X1) @ X3)) @ cHOL4.list.NIL))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.combin.o @ ((cHOL4.combin.UPDATE @ X4) @ X5)) @ (cHOL4.update.LIST_UPDATE @ X6))) @ (cHOL4.update.LIST_UPDATE @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X4) @ X5)) @ X6)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X7]: (cHOL4.bool.! @ (^[X8]: (cHOL4.bool.! @ (^[X9]: (cHOL4.bool.! @ (^[X10]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X7) @ X9) @ (((cHOL4.combin.UPDATE @ X8) @ X10) @ X11))) @ ((cHOL4.update.LIST_UPDATE @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X7) @ X9)) @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X8) @ X10)) @ cHOL4.list.NIL))) @ X11))))))))))))) @ (cHOL4.bool.! @ (^[X12]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X14]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X12) @ X13) @ ((cHOL4.update.LIST_UPDATE @ X14) @ X15))) @ ((cHOL4.update.LIST_UPDATE @ ((cHOL4.list.CONS @ ((cHOL4.pair.|comma| @ X12) @ X13)) @ X14)) @ X15)))))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X16]: (cHOL4.bool.! @ (^[X17]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.update.LIST_UPDATE @ X16)) @ (cHOL4.update.LIST_UPDATE @ X17))) @ (cHOL4.update.LIST_UPDATE @ ((cHOL4.list.APPEND @ X16) @ X17)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X18]: (cHOL4.bool.! @ (^[X19]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ ((cHOL4.combin.o @ (cHOL4.update.LIST_UPDATE @ X18)) @ ((cHOL4.combin.UPDATE @ X19) @ X5))) @ (cHOL4.update.LIST_UPDATE @ ((cHOL4.list.SNOC @ ((cHOL4.pair.|comma| @ X19) @ X5)) @ X18)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X20]: (cHOL4.bool.! @ (^[X21]: (cHOL4.bool.! @ (^[X11]: ((cHOL4.min.= @ ((cHOL4.update.LIST_UPDATE @ X20) @ ((cHOL4.update.LIST_UPDATE @ X21) @ X11))) @ ((cHOL4.update.LIST_UPDATE @ ((cHOL4.list.APPEND @ X20) @ X21)) @ X11))))))))) @ (cHOL4.bool.! @ (^[X22]: (cHOL4.bool.! @ (^[X23]: (cHOL4.bool.! @ (^[X13]: (cHOL4.bool.! @ (^[X15]: ((cHOL4.min.= @ ((cHOL4.update.LIST_UPDATE @ X22) @ (((cHOL4.combin.UPDATE @ X23) @ X13) @ X15))) @ ((cHOL4.update.LIST_UPDATE @ ((cHOL4.list.SNOC @ ((cHOL4.pair.|comma| @ X23) @ X13)) @ X22)) @ X15))))))))))))))) (Tupdate.APPLY_UPDATE_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ (X0 @ X1)) @ X0)) @ X0)))))) (Tupdate.APPLY_UPDATE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((((cHOL4.combin.UPDATE @ X1) @ X2) @ X0) @ X3)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X1) @ X3)) @ X2) @ (X0 @ X3)))))))))))) (Tupdate.SAME_KEY_UPDATE_DIFFER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X4) @ X5))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X3) @ X4) @ X0)) @ (((cHOL4.combin.UPDATE @ X3) @ X5) @ X0))))))))))))))))) (Tupdate.UPDATE_APPLY_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (X0 @ X1)) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X2) @ X0)) @ X0))))))))) (Tupdate.UPDATE_APPLY_IMP_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (X0 @ X2)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X2) @ X1) @ X0)) @ X0))))))))) (Tupdate.UPDATE_COMMUTES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ X0))) @ (((cHOL4.combin.UPDATE @ X2) @ X4) @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0))))))))))))))) (Tupdate.UPDATE_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ (((cHOL4.combin.UPDATE @ X1) @ X2) @ X0))) @ (((cHOL4.combin.UPDATE @ X1) @ X3) @ X0))))))))))) (Tupdate.UPDATE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.combin.UPDATE @ X0) @ X1)) @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X3)) @ X1) @ (X2 @ X3)))))))))) (Tutil_prob.FUNSET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.FUNSET @ X0) @ X1)) @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool.IN @ (X2 @ X3)) @ X1))))))))))) (Tutil_prob.DFUNSET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.DFUNSET @ X0) @ X1)) @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.bool.IN @ (X2 @ X3)) @ (X1 @ X3)))))))))))) (Tutil_prob.pair_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.pair @ X0) @ X1)) @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X3) @ X1))))))))))) (Tutil_prob.powr_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.powr @ X0) @ X1)) @ (cHOL4.transc.exp @ ((cHOL4.realax.real_mul @ X1) @ (cHOL4.transc.ln @ X0))))))))) (Tutil_prob.logr_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.logr @ X0) @ X1)) @ ((cHOL4.real./ @ (cHOL4.transc.ln @ X1)) @ (cHOL4.transc.ln @ X0)))))))) (Tutil_prob.lg_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.lg @ X0)) @ ((cHOL4.util_prob.logr @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))))) (Tutil_prob.countable_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.countable @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.min.= @ (X1 @ X3)) @ X2)))))))))))) (Tutil_prob.enumerate_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.enumerate @ X0)) @ (cHOL4.min.|at| @ (^[X1]: (((cHOL4.pred_set.BIJ @ X1) @ cHOL4.pred_set.UNIV) @ X0))))))) (Tutil_prob.schroeder_close_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.util_prob.schroeder_close @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool.IN @ X2) @ (((cHOL4.arithmetic.FUNPOW @ (cHOL4.pred_set.IMAGE @ X0)) @ X3) @ X1)))))))))))) (Tutil_prob.PREIMAGE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (^[X2]: ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.bool.IN @ (X0 @ X2)) @ X1)))))))))) (Tutil_prob.prod_sets_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.prod_sets @ X0) @ X1)) @ (cHOL4.pred_set.GSPEC @ (cHOL4.pair.UNCURRY @ (^[X2]: (^[X3]: ((cHOL4.pair.|comma| @ ((cHOL4.pred_set.CROSS @ X2) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X3) @ X1))))))))))))) (Tutil_prob.minimal_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.minimal @ X0)) @ (cHOL4.min.|at| @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (cHOL4.bool.~ @ (X0 @ X2)))))))))))) (Tutil_prob.EQ_T_IMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ X0) @ ((cHOL4.min.==> @ cHOL4.bool.T) @ X0))))) (Tutil_prob.EQ_SUBSET_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)))))))) (Tutil_prob.IN_EQ_UNIV_IMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.UNIV)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.IN @ X1) @ X0))))))) (Tutil_prob.IN_FUNSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ (X0 @ X3)) @ X2)))))))))))) (Tutil_prob.IN_DFUNSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.DFUNSET @ X1) @ X2))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ (X0 @ X3)) @ (X2 @ X3))))))))))))) (Tutil_prob.IN_PAIR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.pair @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ (cHOL4.pair.FST @ X0)) @ X1)) @ ((cHOL4.bool.IN @ (cHOL4.pair.SND @ X0)) @ X2)))))))))) (Tutil_prob.FUNSET_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.FUNSET @ X0) @ X1))) @ ((cHOL4.bool.IN @ X3) @ X0))) @ ((cHOL4.bool.IN @ (X2 @ X3)) @ X1))))))))))) (Tutil_prob.UNIV_FUNSET_UNIV,((cHOL4.min.= @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.UNIV)) (Tutil_prob.FUNSET_DFUNSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.FUNSET @ X0) @ X1)) @ ((cHOL4.util_prob.DFUNSET @ X0) @ (cHOL4.combin.K @ X1)))))))) (Tutil_prob.PAIR_UNIV,((cHOL4.min.= @ ((cHOL4.util_prob.pair @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.UNIV)) (Tutil_prob.SUBSET_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X0) @ X2)))))))))) (Tutil_prob.K_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ (cHOL4.combin.K @ X0)) @ X1)) @ ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X0)) @ ((cHOL4.pred_set.SUBSET @ cHOL4.pred_set.UNIV) @ X1)))))))) (Tutil_prob.SUBSET_K,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.SUBSET @ X0) @ (cHOL4.combin.K @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.pred_set.SUBSET @ X0) @ cHOL4.pred_set.EMPTY)) @ X1))))))) (Tutil_prob.SUBSET_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X1)))))))))) (Tutil_prob.PAIRED_BETA_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pair.UNCURRY @ X0) @ X1)) @ ((X0 @ (cHOL4.pair.FST @ X1)) @ (cHOL4.pair.SND @ X1)))))))) (Tutil_prob.EMPTY_FUNSET,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.util_prob.FUNSET @ cHOL4.pred_set.EMPTY) @ X0)) @ cHOL4.pred_set.UNIV)))) (Tutil_prob.FUNSET_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X1) @ ((cHOL4.util_prob.FUNSET @ X0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY))))))) (Tutil_prob.MAX_LE_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MAX @ X0) @ X1)) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ X2)) @ ((cHOL4.arithmetic.<= @ X1) @ X2)))))))))) (Tutil_prob.X_LE_MAX,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X2) @ ((cHOL4.arithmetic.MAX @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.arithmetic.<= @ X2) @ X1)))))))))) (Tutil_prob.TRANSFORM_2D_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((X0 @ X1) @ X2)) @ ((X0 @ X2) @ X1))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X1) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X1) @ X2))))))))) (Tutil_prob.TRIANGLE_2D_NUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((X0 @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((X0 @ X3) @ X2)))))))))) (Tutil_prob.lg_1,((cHOL4.min.= @ (cHOL4.util_prob.lg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) (Tutil_prob.logr_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.util_prob.logr @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) (Tutil_prob.lg_nonzero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.util_prob.lg @ X0)) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Tutil_prob.lg_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ (cHOL4.util_prob.lg @ ((cHOL4.realax.real_mul @ X0) @ X1))) @ ((cHOL4.realax.real_add @ (cHOL4.util_prob.lg @ X0)) @ (cHOL4.util_prob.lg @ X1))))))))) (Tutil_prob.logr_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.util_prob.logr @ X0) @ ((cHOL4.realax.real_mul @ X1) @ X2))) @ ((cHOL4.realax.real_add @ ((cHOL4.util_prob.logr @ X0) @ X1)) @ ((cHOL4.util_prob.logr @ X0) @ X2))))))))))) (Tutil_prob.lg_2,((cHOL4.min.= @ (cHOL4.util_prob.lg @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tutil_prob.lg_inv,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.util_prob.lg @ (cHOL4.realax.inv @ X0))) @ (cHOL4.realax.real_neg @ (cHOL4.util_prob.lg @ X0))))))) (Tutil_prob.logr_inv,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.util_prob.logr @ X0) @ (cHOL4.realax.inv @ X1))) @ (cHOL4.realax.real_neg @ ((cHOL4.util_prob.logr @ X0) @ X1))))))))) (Tutil_prob.logr_div,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.util_prob.logr @ X0) @ ((cHOL4.real./ @ X1) @ X2))) @ ((cHOL4.real.real_sub @ ((cHOL4.util_prob.logr @ X0) @ X1)) @ ((cHOL4.util_prob.logr @ X0) @ X2))))))))))) (Tutil_prob.neg_lg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ (cHOL4.util_prob.lg @ X0))) @ (cHOL4.util_prob.lg @ (cHOL4.realax.inv @ X0))))))) (Tutil_prob.neg_logr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1)) @ ((cHOL4.min.= @ (cHOL4.realax.real_neg @ ((cHOL4.util_prob.logr @ X0) @ X1))) @ ((cHOL4.util_prob.logr @ X0) @ (cHOL4.realax.inv @ X1))))))))) (Tutil_prob.lg_pow,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.lg @ ((cHOL4.real.pow @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ X0))) @ (cHOL4.real.real_of_num @ X0))))) (Tutil_prob.SCHROEDER_CLOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.schroeder_close @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool.IN @ X0) @ (((cHOL4.arithmetic.FUNPOW @ (cHOL4.pred_set.IMAGE @ X1)) @ X3) @ X2)))))))))))) (Tutil_prob.SCHROEDER_CLOSED,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.util_prob.schroeder_close @ X0) @ X1))) @ ((cHOL4.util_prob.schroeder_close @ X0) @ X1))))))) (Tutil_prob.SCHROEDER_CLOSE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ X1) @ ((cHOL4.util_prob.schroeder_close @ X0) @ X1))))))) (Tutil_prob.SCHROEDER_CLOSE_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ X1) @ X1))) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1))) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.util_prob.schroeder_close @ X0) @ X2)) @ X1))))))))) (Tutil_prob.SCHROEDER_BERNSTEIN_AUTO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.INJ @ X2) @ X0) @ X1))))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.BIJ @ X3) @ X0) @ X1))))))))) (Tutil_prob.INJ_IMAGE_BIJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.INJ @ X1) @ X0) @ X2)))) @ (((cHOL4.pred_set.BIJ @ X1) @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X0)))))))) (Tutil_prob.BIJ_SYM_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.BIJ @ X2) @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.BIJ @ X3) @ X1) @ X0))))))))) (Tutil_prob.BIJ_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.BIJ @ X2) @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.BIJ @ X3) @ X1) @ X0))))))))) (Tutil_prob.BIJ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.BIJ @ X3) @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X4]: (((cHOL4.pred_set.BIJ @ X4) @ X1) @ X2))))) @ (cHOL4.bool.? @ (^[X5]: (((cHOL4.pred_set.BIJ @ X5) @ X0) @ X2))))))))))) (Tutil_prob.SCHROEDER_BERNSTEIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.INJ @ X2) @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.INJ @ X3) @ X1) @ X0))))) @ (cHOL4.bool.? @ (^[X4]: (((cHOL4.pred_set.BIJ @ X4) @ X0) @ X1))))))))) (Tutil_prob.SURJ_IMP_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.SURJ @ X2) @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.INJ @ X3) @ X1) @ X0))))))))) (Tutil_prob.BIJ_INJ_SURJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.INJ @ X2) @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: (((cHOL4.pred_set.SURJ @ X3) @ X0) @ X1))))) @ (cHOL4.bool.? @ (^[X4]: (((cHOL4.pred_set.BIJ @ X4) @ X0) @ X1))))))))) (Tutil_prob.BIJ_INV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ (((cHOL4.pred_set.BIJ @ X3) @ X2) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X4) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.combin.o @ X3) @ X0) @ X4)) @ X4))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X5) @ X2)) @ ((cHOL4.min.= @ (((cHOL4.combin.o @ X0) @ X3) @ X5)) @ X5)))))))))))))))) (Tutil_prob.NUM_2D_BIJ,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.UNIV)))) (Tutil_prob.NUM_2D_BIJ_INV,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))))) (Tutil_prob.NUM_2D_BIJ_NZ,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY)))) @ cHOL4.pred_set.UNIV)))) (Tutil_prob.NUM_2D_BIJ_NZ_INV,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))))))) (Tutil_prob.NUM_2D_BIJ_NZ_ALT,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV)) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY)))))) (Tutil_prob.NUM_2D_BIJ_NZ_ALT_INV,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))))) (Tutil_prob.NUM_2D_BIJ_NZ_ALT2,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY)))) @ cHOL4.pred_set.UNIV)))) (Tutil_prob.NUM_2D_BIJ_NZ_ALT2_INV,(cHOL4.bool.? @ (^[X0]: (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))) @ ((cHOL4.pred_set.DIFF @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.INSERT @ cHOL4.num.0) @ cHOL4.pred_set.EMPTY))))))) (Tutil_prob.BIGUNION_PAIR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.INSERT @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.pred_set.UNION @ X0) @ X1))))))) (Tutil_prob.FINITE_COUNTABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.util_prob.countable @ X0))))) (Tutil_prob.BIJ_NUM_COUNTABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X1]: (((cHOL4.pred_set.BIJ @ X1) @ cHOL4.pred_set.UNIV) @ X0)))) @ (cHOL4.util_prob.countable @ X0))))) (Tutil_prob.COUNTABLE_EMPTY,(cHOL4.util_prob.countable @ cHOL4.pred_set.EMPTY)) (Tutil_prob.COUNTABLE_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.util_prob.countable @ X0)) @ (cHOL4.util_prob.countable @ ((cHOL4.pred_set.IMAGE @ X1) @ X0)))))))) (Tutil_prob.COUNTABLE_BIGUNION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ (cHOL4.util_prob.countable @ X1)))))) @ (cHOL4.util_prob.countable @ (cHOL4.pred_set.BIGUNION @ X0)))))) (Tutil_prob.COUNTABLE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.util_prob.countable @ X0)) @ (cHOL4.util_prob.countable @ X1))) @ (cHOL4.util_prob.countable @ ((cHOL4.pred_set.UNION @ X0) @ X1)))))))) (Tutil_prob.FINITE_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ (cHOL4.pred_set.FINITE @ X2))) @ (cHOL4.pred_set.FINITE @ X1))))))))) (Tutil_prob.INFINITE_INJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.INJ @ X0) @ X1) @ X2)) @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X1)))) @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X2)))))))))) (Tutil_prob.ENUMERATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (((cHOL4.pred_set.BIJ @ X1) @ cHOL4.pred_set.UNIV) @ X0)))) @ (((cHOL4.pred_set.BIJ @ (cHOL4.util_prob.enumerate @ X0)) @ cHOL4.pred_set.UNIV) @ X0))))) (Tutil_prob.FINITE_REST,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ (cHOL4.pred_set.REST @ X0))) @ (cHOL4.pred_set.FINITE @ X0))))) (Tutil_prob.EXPLICIT_ENUMERATE_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ (((cHOL4.arithmetic.FUNPOW @ cHOL4.pred_set.REST) @ X0) @ X1)) @ X1)))))) (Tutil_prob.EXPLICIT_ENUMERATE_NOT_EMPTY,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (((cHOL4.arithmetic.FUNPOW @ cHOL4.pred_set.REST) @ X0) @ X1)) @ cHOL4.pred_set.EMPTY)))))))) (Tutil_prob.INFINITE_EXPLICIT_ENUMERATE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ X0))) @ (((cHOL4.pred_set.INJ @ (^[X1]: (cHOL4.pred_set.CHOICE @ (((cHOL4.arithmetic.FUNPOW @ cHOL4.pred_set.REST) @ X1) @ X0)))) @ cHOL4.pred_set.UNIV) @ X0))))) (Tutil_prob.COUNTABLE_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.countable @ X0)) @ ((cHOL4.bool.\/ @ (cHOL4.pred_set.FINITE @ X0)) @ (((cHOL4.pred_set.BIJ @ (cHOL4.util_prob.enumerate @ X0)) @ cHOL4.pred_set.UNIV) @ X0)))))) (Tutil_prob.DISJOINT_COUNT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ X2))) @ ((cHOL4.pred_set.DISJOINT @ (X0 @ X1)) @ (X0 @ X2)))))))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.pred_set.DISJOINT @ (X0 @ X2)) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.pred_set.count @ X2)))))))))) (Tutil_prob.K_PARTIAL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.combin.K @ X0)) @ (^[X1]: X0))))) (Tutil_prob.IN_o,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.combin.o @ X2) @ X1))) @ ((cHOL4.bool.IN @ (X1 @ X0)) @ X2))))))))) (Tutil_prob.PREIMAGE_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ ((cHOL4.combin.o @ X1) @ X0))))))) (Tutil_prob.IN_PREIMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1))) @ ((cHOL4.bool.IN @ (X0 @ X2)) @ X1))))))))) (Tutil_prob.IN_BIGUNION_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X2) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X2) @ (X0 @ X3))))))))))))) (Tutil_prob.IN_BIGINTER_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ (cHOL4.pred_set.BIGINTER @ ((cHOL4.pred_set.IMAGE @ X1) @ X2)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X2)) @ ((cHOL4.bool.IN @ X0) @ (X1 @ X3))))))))))))) (Tutil_prob.PREIMAGE_EMPTY,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ cHOL4.pred_set.EMPTY)) @ cHOL4.pred_set.EMPTY)))) (Tutil_prob.PREIMAGE_UNIV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ cHOL4.pred_set.UNIV)) @ cHOL4.pred_set.UNIV)))) (Tutil_prob.PREIMAGE_COMPL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ (cHOL4.pred_set.COMPL @ X1))) @ (cHOL4.pred_set.COMPL @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)))))))) (Tutil_prob.PREIMAGE_UNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ ((cHOL4.pred_set.UNION @ X1) @ X2))) @ ((cHOL4.pred_set.UNION @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X2)))))))))) (Tutil_prob.PREIMAGE_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X2)))))))))) (Tutil_prob.PREIMAGE_BIGUNION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ (cHOL4.pred_set.BIGUNION @ X1))) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (cHOL4.util_prob.PREIMAGE @ X0)) @ X1)))))))) (Tutil_prob.PREIMAGE_COMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ ((cHOL4.util_prob.PREIMAGE @ X1) @ X2))) @ ((cHOL4.util_prob.PREIMAGE @ ((cHOL4.combin.o @ X1) @ X0)) @ X2))))))))) (Tutil_prob.PREIMAGE_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ ((cHOL4.pred_set.DIFF @ X1) @ X2))) @ ((cHOL4.pred_set.DIFF @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X2)))))))))) (Tutil_prob.PREIMAGE_I,((cHOL4.min.= @ (cHOL4.util_prob.PREIMAGE @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tutil_prob.IMAGE_I,((cHOL4.min.= @ (cHOL4.pred_set.IMAGE @ cHOL4.combin.I)) @ cHOL4.combin.I)) (Tutil_prob.PREIMAGE_K,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ (cHOL4.combin.K @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.IN @ X0) @ X1)) @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.EMPTY))))))) (Tutil_prob.PREIMAGE_DISJOINT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.DISJOINT @ X1) @ X2)) @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X2)))))))))) (Tutil_prob.PREIMAGE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X2)) @ ((cHOL4.pred_set.SUBSET @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X2)))))))))) (Tutil_prob.SUBSET_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.pred_set.SUBSET @ (X0 @ X1)) @ (X0 @ (cHOL4.num.SUC @ X1)))))) @ ((cHOL4.pred_set.SUBSET @ (X0 @ X1)) @ (X0 @ ((cHOL4.arithmetic.+ @ X1) @ X2))))))))))) (Tutil_prob.DISJOINT_DIFFS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.pred_set.SUBSET @ (X1 @ X3)) @ (X1 @ (cHOL4.num.SUC @ X3)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X0 @ X3)) @ ((cHOL4.pred_set.DIFF @ (X1 @ (cHOL4.num.SUC @ X3))) @ (X1 @ X3)))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))))) @ ((cHOL4.pred_set.DISJOINT @ (X0 @ X2)) @ (X0 @ X3)))))))))))) (Tutil_prob.IMAGE_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.IMAGE @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ X2))) @ ((cHOL4.pred_set.IMAGE @ ((cHOL4.combin.o @ X0) @ X1)) @ X2))))))))) (Tutil_prob.IN_PROD_SETS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.prod_sets @ X1) @ X2))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.CROSS @ X3) @ X4))) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((cHOL4.bool.IN @ X4) @ X2))))))))))))))) (Tutil_prob.PREIMAGE_CROSS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.util_prob.PREIMAGE @ X0) @ ((cHOL4.pred_set.CROSS @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ ((cHOL4.combin.o @ cHOL4.pair.FST) @ X0)) @ X1)) @ ((cHOL4.util_prob.PREIMAGE @ ((cHOL4.combin.o @ cHOL4.pair.SND) @ X0)) @ X2)))))))))) (Tutil_prob.FUNSET_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.util_prob.FUNSET @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X2))) @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.FUNSET @ X0) @ X1)) @ ((cHOL4.util_prob.FUNSET @ X0) @ X2)))))))))) (Tutil_prob.UNIV_NEQ_EMPTY,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.EMPTY))) (Tutil_prob.COUNTABLE_NUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.util_prob.countable @ X0)))) (Tutil_prob.COUNTABLE_IMAGE_NUM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.util_prob.countable @ ((cHOL4.pred_set.IMAGE @ X0) @ X1))))))) (Tutil_prob.COUNTABLE_ENUM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.util_prob.countable @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ ((cHOL4.pred_set.IMAGE @ X1) @ cHOL4.pred_set.UNIV))))))))) (Tutil_prob.BIGUNION_IMAGE_UNIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.min.= @ (X0 @ X2)) @ cHOL4.pred_set.EMPTY))))) @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ cHOL4.pred_set.UNIV))) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.pred_set.count @ X1)))))))))) (Tutil_prob.BIJ_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.util_prob.FUNSET @ X1) @ X2))) @ ((cHOL4.bool.RES_FORALL @ X2) @ (^[X3]: ((cHOL4.bool.RES_EXISTS_UNIQUE @ X1) @ (^[X4]: ((cHOL4.min.= @ X3) @ (X0 @ X4))))))))))))))) (Tutil_prob.BIJ_FINITE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.UNIV) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X1)))) @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X3) @ X4)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ (X0 @ X4)) @ X2))))))))))))))) (Tutil_prob.NUM_2D_BIJ_SMALL_SQUARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.CROSS @ (cHOL4.pred_set.count @ X1)) @ (cHOL4.pred_set.count @ X1))) @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.pred_set.count @ X2))))))))))) (Tutil_prob.NUM_2D_BIJ_BIG_SQUARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (((cHOL4.pred_set.BIJ @ X0) @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.pred_set.SUBSET @ ((cHOL4.pred_set.IMAGE @ X0) @ (cHOL4.pred_set.count @ X1))) @ ((cHOL4.pred_set.CROSS @ (cHOL4.pred_set.count @ X2)) @ (cHOL4.pred_set.count @ X2))))))))))) (Tutil_prob.finite_enumeration_of_sets_has_max_non_empty,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool.IN @ (X0 @ X2)) @ X1)))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X3) @ X4))) @ ((cHOL4.pred_set.DISJOINT @ (X0 @ X3)) @ (X0 @ X4)))))))))) @ (cHOL4.bool.? @ (^[X5]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.>= @ X4) @ X5)) @ ((cHOL4.min.= @ (X0 @ X4)) @ cHOL4.pred_set.EMPTY)))))))))))) (Tutil_prob.SUBSET_INTER1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X0) @ X1)) @ X0))))))) (Tutil_prob.SUBSET_INTER2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ X1) @ X0)) @ X0))))))) (Tutil_prob.DIFF_DIFF_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))) @ X1))))))) (Tutil_prob.BIGINTER_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X0))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.pred_set.BIGINTER @ X1)) @ X0))))))) (Tutil_prob.DIFF_BIGINTER1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ (cHOL4.pred_set.BIGINTER @ X1))) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (^[X2]: ((cHOL4.pred_set.DIFF @ X0) @ X2))) @ X1)))))))) (Tutil_prob.DIFF_BIGINTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X2) @ X0))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY)))) @ ((cHOL4.min.= @ (cHOL4.pred_set.BIGINTER @ X1)) @ ((cHOL4.pred_set.DIFF @ X0) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (^[X3]: ((cHOL4.pred_set.DIFF @ X0) @ X3))) @ X1)))))))))) (Tutil_prob.DIFF_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X2)) @ ((cHOL4.pred_set.DIFF @ ((cHOL4.pred_set.INTER @ X0) @ X2)) @ X1))))))))) (Tutil_prob.DIFF_INTER2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DIFF @ X0) @ ((cHOL4.pred_set.INTER @ X1) @ X0))) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))))))) (Tutil_prob.PREIMAGE_COMPL_INTER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.pred_set.INTER @ ((cHOL4.util_prob.PREIMAGE @ X0) @ (cHOL4.pred_set.COMPL @ X1))) @ X2)) @ ((cHOL4.pred_set.DIFF @ X2) @ ((cHOL4.util_prob.PREIMAGE @ X0) @ X1)))))))))) (Tutil_prob.PREIMAGE_REAL_COMPL1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.realax.real_lt @ X0) @ X1)))))) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.real.real_lte @ X1) @ X0)))))))) (Tutil_prob.PREIMAGE_REAL_COMPL2,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.real.real_lte @ X0) @ X1)))))) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))))) (Tutil_prob.PREIMAGE_REAL_COMPL3,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.real.real_lte @ X1) @ X0)))))) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.realax.real_lt @ X0) @ X1)))))))) (Tutil_prob.PREIMAGE_REAL_COMPL4,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.COMPL @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.realax.real_lt @ X1) @ X0)))))) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.real.real_lte @ X0) @ X1)))))))) (Tutil_prob.ELT_IN_DELETE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.pred_set.DELETE @ X1) @ X0)))))))) (Tutil_prob.DELETE_THEN_INSERT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool.RES_FORALL @ X0) @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ X1) @ ((cHOL4.pred_set.DELETE @ X0) @ X1))) @ X0)))))) (Tutil_prob.BIJ_INSERT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X1) @ X2))) @ (((cHOL4.pred_set.BIJ @ X0) @ ((cHOL4.pred_set.INSERT @ X1) @ X2)) @ X3))) @ (cHOL4.bool.? @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.pred_set.INSERT @ (X0 @ X1)) @ X4)) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ (X0 @ X1)) @ X4))) @ (((cHOL4.pred_set.BIJ @ X0) @ X2) @ X4))))))))))))))) (Tutil_prob.FINITE_BIJ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X1)) @ (((cHOL4.pred_set.BIJ @ X0) @ X1) @ X2))) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ X2)) @ ((cHOL4.min.= @ (cHOL4.pred_set.CARD @ X1)) @ (cHOL4.pred_set.CARD @ X2))))))))))) (Tutil_prob.FINITE_BIJ_COUNT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.pred_set.FINITE @ X0)) @ (cHOL4.bool.? @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (((cHOL4.pred_set.BIJ @ X1) @ (cHOL4.pred_set.count @ X2)) @ X0))))))))) (Tutil_prob.GBIGUNION_IMAGE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ (cHOL4.bool.? @ (^[X4]: ((X1 @ X3) @ X4))))))) @ (cHOL4.pred_set.BIGUNION @ ((cHOL4.pred_set.IMAGE @ (^[X4]: (cHOL4.pred_set.GSPEC @ (^[X3]: ((cHOL4.pair.|comma| @ X3) @ ((X1 @ X3) @ X4)))))) @ cHOL4.pred_set.UNIV)))))))))) (Tutil_prob.DISJOINT_ALT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.pred_set.DISJOINT @ X0) @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))))))))))) (Tutil_prob.DISJOINT_DIFF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.pred_set.DISJOINT @ X1) @ ((cHOL4.pred_set.DIFF @ X0) @ X1))) @ ((cHOL4.pred_set.DISJOINT @ ((cHOL4.pred_set.DIFF @ X0) @ X1)) @ X1))))))) (Tutil_prob.COUNTABLE_COUNT,(cHOL4.bool.! @ (^[X0]: (cHOL4.util_prob.countable @ (cHOL4.pred_set.count @ X0))))) (Tutil_prob.COUNTABLE_SUBSET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ (cHOL4.util_prob.countable @ X1))) @ (cHOL4.util_prob.countable @ X0))))))) (Tutil_prob.LT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Tutil_prob.LE_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ X0) @ (cHOL4.num.SUC @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.num.SUC @ X1))))))))) (Tutil_prob.HALF_POS,((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Tutil_prob.HALF_LT_1,((cHOL4.realax.real_lt @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tutil_prob.HALF_CANCEL,((cHOL4.min.= @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tutil_prob.X_HALF_HALF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.realax.real_add @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.realax.real_mul @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))) @ X0)))) (Tutil_prob.ONE_MINUS_HALF,((cHOL4.min.= @ ((cHOL4.real.real_sub @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Tutil_prob.POW_HALF_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0))))) (Tutil_prob.POW_HALF_SMALL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.realax.real_lt @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X1)) @ X0))))))) (Tutil_prob.POW_HALF_MONO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.real.real_lte @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ X0)))))))) (Tutil_prob.REAL_LE_LT_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Tutil_prob.REAL_LT_LE_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((cHOL4.realax.real_mul @ X0) @ X1)))))))) (Tutil_prob.REAL_MUL_IDEMPOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.realax.real_mul @ X0) @ X0)) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Tutil_prob.REAL_SUP_LE_X,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X2) @ X1)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.sup @ X0)) @ X1))))))) (Tutil_prob.REAL_X_LE_SUP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X0 @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X2) @ X3))))))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ (X0 @ X2)) @ ((cHOL4.real.real_lte @ X1) @ X2))))))) @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.sup @ X0)))))))) (Tutil_prob.INF_DEF_ALT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.real.inf @ X0)) @ (cHOL4.realax.real_neg @ (cHOL4.real.sup @ (^[X1]: ((cHOL4.bool.IN @ (cHOL4.realax.real_neg @ X1)) @ X0)))))))) (Tutil_prob.LE_INF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ X0)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.real.real_lte @ X1) @ X2)))))) @ ((cHOL4.real.real_lte @ X1) @ (cHOL4.real.inf @ X0)))))))) (Tutil_prob.INF_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.real.real_lte @ X2) @ X3))))))) @ (cHOL4.bool.? @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X3) @ X0)) @ ((cHOL4.real.real_lte @ X3) @ X1)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.inf @ X0)) @ X1))))))) (Tutil_prob.INF_GREATER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ X0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.inf @ X0)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.realax.real_lt @ X2) @ X1)))))))))) (Tutil_prob.INF_CLOSE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool.IN @ X2) @ X0)))) @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X1))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.realax.real_lt @ X2) @ ((cHOL4.realax.real_add @ (cHOL4.real.inf @ X0)) @ X1))))))))))) (Tutil_prob.INCREASING_SEQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X0 @ (cHOL4.num.SUC @ X2)))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ X1)))) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.realax.real_lt @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ X3)) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.realax.real_lt @ X1) @ ((cHOL4.realax.real_add @ (X0 @ X2)) @ X3)))))))))) @ ((cHOL4.seq.--> @ X0) @ X1))))))) (Tutil_prob.SEQ_SANDWICH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X0) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.seq.--> @ X2) @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.bool./\ @ ((cHOL4.real.real_lte @ (X0 @ X4)) @ (X1 @ X4))) @ ((cHOL4.real.real_lte @ (X1 @ X4)) @ (X2 @ X4)))))))) @ ((cHOL4.seq.--> @ X1) @ X3))))))))))) (Tutil_prob.SER_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X1)))))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.seq.suminf @ X0)))))) (Tutil_prob.SER_POS_MONO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.seq.mono @ (^[X1]: ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0))))))) (Tutil_prob.POS_SUMMABLE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X1)) @ X0)) @ X2))))))) @ (cHOL4.seq.summable @ X0))))) (Tutil_prob.SUMMABLE_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X2)) @ X0)) @ X1))))) @ ((cHOL4.real.real_lte @ (cHOL4.seq.suminf @ X0)) @ X1))))))) (Tutil_prob.SUMS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.seq.sums @ X0) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.min.= @ (cHOL4.seq.suminf @ X0)) @ X1)))))))) (Tutil_prob.SUMINF_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X1))))) @ (cHOL4.seq.summable @ X0))) @ ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (cHOL4.seq.suminf @ X0)))))) (Tutil_prob.SUM_PICK,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X3) @ X1)) @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0))))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ X0)) @ X2) @ (cHOL4.real.real_of_num @ cHOL4.num.0)))))))))) (Tutil_prob.SUM_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X4)) @ ((cHOL4.prim_rec.< @ X4) @ ((cHOL4.arithmetic.+ @ X3) @ X2)))) @ ((cHOL4.realax.real_lt @ (X0 @ X4)) @ (X1 @ X4)))))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X3))) @ ((cHOL4.realax.real_lt @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X0)) @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ X2) @ X3)) @ X1)))))))))))) (Tutil_prob.SUM_CONST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.real.sum @ ((cHOL4.pair.|comma| @ cHOL4.num.0) @ X0)) @ (cHOL4.combin.K @ X1))) @ ((cHOL4.realax.real_mul @ (cHOL4.real.real_of_num @ X0)) @ X1))))))) (Tutil_prob.SUMINF_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ (cHOL4.seq.summable @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ (^[X2]: ((cHOL4.realax.real_add @ (X0 @ X2)) @ (X1 @ X2))))) @ ((cHOL4.min.= @ ((cHOL4.realax.real_add @ (cHOL4.seq.suminf @ X0)) @ (cHOL4.seq.suminf @ X1))) @ (cHOL4.seq.suminf @ (^[X2]: ((cHOL4.realax.real_add @ (X0 @ X2)) @ (X1 @ X2)))))))))))) (Tutil_prob.SUMINF_2D,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ ((X0 @ X3) @ X4))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.seq.sums @ (X0 @ X4)) @ (X1 @ X4))))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X1)) @ (((cHOL4.pred_set.BIJ @ X2) @ cHOL4.pred_set.UNIV) @ ((cHOL4.pred_set.CROSS @ cHOL4.pred_set.UNIV) @ cHOL4.pred_set.UNIV)))))) @ ((cHOL4.seq.sums @ ((cHOL4.combin.o @ (cHOL4.pair.UNCURRY @ X0)) @ X2)) @ (cHOL4.seq.suminf @ X1)))))))))) (Tutil_prob.POW_HALF_SER,((cHOL4.seq.sums @ (^[X0]: ((cHOL4.real.pow @ ((cHOL4.real./ @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.real.real_of_num @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Tutil_prob.SER_POS_COMPARE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (cHOL4.real.real_of_num @ cHOL4.num.0)) @ (X0 @ X2))))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.real.real_lte @ (X0 @ X2)) @ (X1 @ X2))))))) @ ((cHOL4.bool./\ @ (cHOL4.seq.summable @ X0)) @ ((cHOL4.real.real_lte @ (cHOL4.seq.suminf @ X0)) @ (cHOL4.seq.suminf @ X1))))))))) (Tutil_prob.MINIMAL_EXISTS0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X1)) @ (cHOL4.bool.~ @ (X0 @ X2)))))))))))) (Tutil_prob.MINIMAL_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.util_prob.minimal @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.util_prob.minimal @ X0))) @ (cHOL4.bool.~ @ (X0 @ X1)))))))))) (Twhile.WHILE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.while.WHILE @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ (X0 @ X2)) @ (((cHOL4.while.WHILE @ X0) @ X1) @ (X1 @ X2))) @ X2))))))))) (Twhile.HOARE_SPEC_DEF,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.while.HOARE_SPEC @ X0) @ X1) @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ (X2 @ (X1 @ X3))))))))))))) (Twhile.LEAST_DEF,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.while.LEAST @ X0)) @ (((cHOL4.while.WHILE @ ((cHOL4.combin.o @ cHOL4.bool.~) @ X0)) @ cHOL4.num.SUC) @ cHOL4.num.0))))) (Twhile.OLEAST_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.while.OLEAST @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ (cHOL4.option.SOME @ (cHOL4.while.LEAST @ (^[X1]: (X0 @ X1))))) @ cHOL4.option.NONE))))) (Twhile.OWHILE_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ (cHOL4.bool.? @ (^[X3]: (cHOL4.bool.~ @ (X0 @ (((cHOL4.arithmetic.FUNPOW @ X1) @ X3) @ X2)))))) @ (cHOL4.option.SOME @ (((cHOL4.arithmetic.FUNPOW @ X1) @ (cHOL4.while.LEAST @ (^[X3]: (cHOL4.bool.~ @ (X0 @ (((cHOL4.arithmetic.FUNPOW @ X1) @ X3) @ X2)))))) @ X2))) @ cHOL4.option.NONE))))))))) (Twhile.ITERATION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.? @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (X2 @ X3)) @ (((cHOL4.bool.COND @ (X0 @ X3)) @ X3) @ (X2 @ (X1 @ X3))))))))))))) (Twhile.WHILE_INDUCTION,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (X0 @ X3)) @ ((X2 @ (X1 @ X3)) @ X3)))))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.==> @ (X0 @ X3)) @ (X4 @ (X1 @ X3)))) @ (X4 @ X3))))) @ (cHOL4.bool.! @ (^[X5]: (X4 @ X5)))))))))))))) (Twhile.WHILE_RULE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X1)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ (X2 @ X4)) @ ((X1 @ (X3 @ X4)) @ X4)))))) @ ((cHOL4.min.==> @ (((cHOL4.while.HOARE_SPEC @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (X2 @ X4)))) @ X3) @ X0)) @ (((cHOL4.while.HOARE_SPEC @ X0) @ ((cHOL4.while.WHILE @ X2) @ X3)) @ (^[X4]: ((cHOL4.bool./\ @ (X0 @ X4)) @ (cHOL4.bool.~ @ (X2 @ X4)))))))))))))))) (Twhile.LEAST_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (X0 @ (cHOL4.while.LEAST @ X0)))))))) (Twhile.LESS_LEAST,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.while.LEAST @ X0))) @ (cHOL4.bool.~ @ (X0 @ X1)))))))) (Twhile.FULL_LEAST_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.while.LEAST @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.while.LEAST @ X0)) @ X1)))))))) (Twhile.LEAST_ELIM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.? @ (^[X2]: (X1 @ X2)))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (cHOL4.bool.~ @ (X1 @ X3)))))) @ (X1 @ X2))) @ (X0 @ X2)))))) @ (X0 @ (cHOL4.while.LEAST @ X1)))))))) (Twhile.LEAST_EXISTS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.while.LEAST @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.while.LEAST @ X0))) @ (cHOL4.bool.~ @ (X0 @ X1)))))))))) (Twhile.LEAST_EXISTS_IMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.? @ (^[X1]: (X0 @ X1)))) @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.while.LEAST @ X0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.while.LEAST @ X0))) @ (cHOL4.bool.~ @ (X0 @ X1)))))))))) (Twhile.LEAST_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ X0)) @ ((cHOL4.min.= @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.min.= @ X0) @ X1)))) @ X0))))) (Twhile.OLEAST_INTRO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.~ @ (X1 @ X2))))) @ (X0 @ cHOL4.option.NONE))) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X2)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X3) @ X2)) @ (cHOL4.bool.~ @ (X1 @ X3))))))) @ (X0 @ (cHOL4.option.SOME @ X2))))))) @ (X0 @ (cHOL4.while.OLEAST @ X1)))))))) (Twhile.OLEAST_EQNS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.while.OLEAST @ (^[X1]: ((cHOL4.min.= @ X1) @ X0)))) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.while.OLEAST @ (^[X1]: ((cHOL4.min.= @ X0) @ X1)))) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.while.OLEAST @ (^[X1]: cHOL4.bool.F))) @ cHOL4.option.NONE)) @ ((cHOL4.min.= @ (cHOL4.while.OLEAST @ (^[X1]: cHOL4.bool.T))) @ (cHOL4.option.SOME @ cHOL4.num.0)))))))) (Twhile.OWHILE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X2) @ X1) @ X0)) @ (((cHOL4.bool.COND @ (X2 @ X0)) @ (((cHOL4.while.OWHILE @ X2) @ X1) @ (X1 @ X0))) @ (cHOL4.option.SOME @ X0)))))))))) (Twhile.OWHILE_EQ_NONE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X2) @ X1) @ X0)) @ cHOL4.option.NONE)) @ (cHOL4.bool.! @ (^[X3]: (X2 @ (((cHOL4.arithmetic.FUNPOW @ X1) @ X3) @ X0)))))))))))) (Twhile.OWHILE_ENDCOND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X3) @ X2) @ X1)) @ (cHOL4.option.SOME @ X0))) @ (cHOL4.bool.~ @ (X3 @ X0)))))))))))) (Twhile.OWHILE_WHILE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X3) @ X2) @ X1)) @ (cHOL4.option.SOME @ X0))) @ ((cHOL4.min.= @ (((cHOL4.while.WHILE @ X3) @ X2) @ X1)) @ X0))))))))))) (Twhile.OWHILE_INV_IND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X3)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ X4)) @ (X1 @ X4))) @ (X0 @ (X2 @ X4))))))) @ (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X1) @ X2) @ X3)) @ (cHOL4.option.SOME @ X5))) @ (X0 @ X5)))))))))))))) (Twhile.OWHILE_IND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (X1 @ X3))) @ ((X0 @ X3) @ X3))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X1 @ X4)) @ ((X0 @ (X2 @ X4)) @ X5))) @ ((X0 @ X4) @ X5)))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (((cHOL4.while.OWHILE @ X1) @ X2) @ X4)) @ (cHOL4.option.SOME @ X5))) @ ((X0 @ X4) @ X5)))))))))))))) (Twords.dimword_def,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) (Twords.INT_MIN_def,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.UINT_MAX_def,((cHOL4.min.= @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.INT_MAX_def,((cHOL4.min.= @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.- @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.w2n_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2n @ X0)) @ ((cHOL4.sum_num.SUM @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (^[X1]: ((cHOL4.bit.SBIT @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ X1))))))) (Twords.n2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.bit.BIT @ X1) @ X0))))))) (Twords.w2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.n2w @ (cHOL4.words.w2n @ X0)))))) (Twords.sw2sw_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.sw2sw @ X0)) @ (cHOL4.words.n2w @ (((cHOL4.bit.SIGN_EXTEND @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.words.w2n @ X0))))))) (Twords.w2l_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.w2l @ X0) @ X1)) @ ((cHOL4.numposrep.n2l @ X0) @ (cHOL4.words.w2n @ X1)))))))) (Twords.l2w_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.l2w @ X0) @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.numposrep.l2n @ X0) @ X1)))))))) (Twords.w2s_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.w2s @ X0) @ X1) @ X2)) @ (((cHOL4.ASCIInumbers.n2s @ X0) @ X1) @ (cHOL4.words.w2n @ X2)))))))))) (Twords.s2w_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.s2w @ X0) @ X1) @ X2)) @ (cHOL4.words.n2w @ (((cHOL4.ASCIInumbers.s2n @ X0) @ X1) @ X2)))))))))) (Twords.word_from_bin_list_def,((cHOL4.min.= @ cHOL4.words.word_from_bin_list) @ (cHOL4.words.l2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Twords.word_from_oct_list_def,((cHOL4.min.= @ cHOL4.words.word_from_oct_list) @ (cHOL4.words.l2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.word_from_dec_list_def,((cHOL4.min.= @ cHOL4.words.word_from_dec_list) @ (cHOL4.words.l2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.word_from_hex_list_def,((cHOL4.min.= @ cHOL4.words.word_from_hex_list) @ (cHOL4.words.l2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.word_to_bin_list_def,((cHOL4.min.= @ cHOL4.words.word_to_bin_list) @ (cHOL4.words.w2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Twords.word_to_oct_list_def,((cHOL4.min.= @ cHOL4.words.word_to_oct_list) @ (cHOL4.words.w2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.word_to_dec_list_def,((cHOL4.min.= @ cHOL4.words.word_to_dec_list) @ (cHOL4.words.w2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.word_to_hex_list_def,((cHOL4.min.= @ cHOL4.words.word_to_hex_list) @ (cHOL4.words.w2l @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.word_from_bin_string_def,((cHOL4.min.= @ cHOL4.words.word_from_bin_string) @ ((cHOL4.words.s2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ cHOL4.ASCIInumbers.UNHEX))) (Twords.word_from_oct_string_def,((cHOL4.min.= @ cHOL4.words.word_from_oct_string) @ ((cHOL4.words.s2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.UNHEX))) (Twords.word_from_dec_string_def,((cHOL4.min.= @ cHOL4.words.word_from_dec_string) @ ((cHOL4.words.s2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.UNHEX))) (Twords.word_from_hex_string_def,((cHOL4.min.= @ cHOL4.words.word_from_hex_string) @ ((cHOL4.words.s2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ cHOL4.ASCIInumbers.UNHEX))) (Twords.word_to_bin_string_def,((cHOL4.min.= @ cHOL4.words.word_to_bin_string) @ ((cHOL4.words.w2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ cHOL4.ASCIInumbers.HEX))) (Twords.word_to_oct_string_def,((cHOL4.min.= @ cHOL4.words.word_to_oct_string) @ ((cHOL4.words.w2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.HEX))) (Twords.word_to_dec_string_def,((cHOL4.min.= @ cHOL4.words.word_to_dec_string) @ ((cHOL4.words.w2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.ASCIInumbers.HEX))) (Twords.word_to_hex_string_def,((cHOL4.min.= @ cHOL4.words.word_to_hex_string) @ ((cHOL4.words.w2s @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ cHOL4.ASCIInumbers.HEX))) (Twords.word_T_def,((cHOL4.min.= @ cHOL4.words.word_T) @ (cHOL4.words.n2w @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)))) (Twords.word_L_def,((cHOL4.min.= @ cHOL4.words.word_L) @ (cHOL4.words.n2w @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))) (Twords.word_H_def,((cHOL4.min.= @ cHOL4.words.word_H) @ (cHOL4.words.n2w @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)))) (Twords.word_1comp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_1comp @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ X1)))))))) (Twords.word_and_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2)))))))))) (Twords.word_or_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2)))))))))) (Twords.word_xor_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Twords.word_nand_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nand @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Twords.word_nor_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nor @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Twords.word_xnor_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xnor @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X2)) @ ((cHOL4.fcp.fcp_index @ X1) @ X2)))))))))) (Twords.word_reduce_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_reduce @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.list.FOLDL @ X0) @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2)))) @ ((cHOL4.list.GENLIST @ (^[X3]: ((cHOL4.fcp.fcp_index @ X1) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))))) (Twords.word_compare_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_compare @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.reduce_and_def,((cHOL4.min.= @ cHOL4.words.reduce_and) @ (cHOL4.words.word_reduce @ cHOL4.bool./\))) (Twords.reduce_or_def,((cHOL4.min.= @ cHOL4.words.reduce_or) @ (cHOL4.words.word_reduce @ cHOL4.bool.\/))) (Twords.reduce_xor_def,((cHOL4.min.= @ cHOL4.words.reduce_xor) @ (cHOL4.words.word_reduce @ (^[X0]: (^[X1]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1))))))) (Twords.reduce_nand_def,((cHOL4.min.= @ cHOL4.words.reduce_nand) @ (cHOL4.words.word_reduce @ (^[X0]: (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ X0) @ X1))))))) (Twords.reduce_nor_def,((cHOL4.min.= @ cHOL4.words.reduce_nor) @ (cHOL4.words.word_reduce @ (^[X0]: (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X0) @ X1))))))) (Twords.reduce_xnor_def,((cHOL4.min.= @ cHOL4.words.reduce_xnor) @ (cHOL4.words.word_reduce @ cHOL4.min.=))) (Twords.word_lsb_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_lsb @ X0)) @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0))))) (Twords.word_msb_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.word_slice_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_slice @ X0) @ X1)) @ (^[X2]: (cHOL4.fcp.FCP @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.fcp.fcp_index @ X2) @ X3)))))))))))) (Twords.word_bits_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_bits @ X0) @ X1)) @ (^[X2]: (cHOL4.fcp.FCP @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ X3) @ X1)) @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.fcp.fcp_index @ X2) @ ((cHOL4.arithmetic.+ @ X3) @ X1)))))))))))) (Twords.word_signed_bits_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_signed_bits @ X0) @ X1)) @ (^[X2]: (cHOL4.fcp.FCP @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.fcp.fcp_index @ X2) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.+ @ X3) @ X1)) @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))) (Twords.word_extract_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_extract @ X0) @ X1)) @ ((cHOL4.combin.o @ cHOL4.words.w2w) @ ((cHOL4.words.word_bits @ X0) @ X1)))))))) (Twords.word_bit_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_bit @ X0) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.fcp.fcp_index @ X1) @ X0)))))))) (Twords.word_reverse_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_reverse @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Twords.word_modify_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_modify @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((X0 @ X2) @ ((cHOL4.fcp.fcp_index @ X1) @ X2)))))))))) (Twords.BIT_SET_tupled_primitive_def,((cHOL4.min.= @ cHOL4.words.BIT_SET_tupled) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.WF @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ (cHOL4.arithmetic.ODD @ X2))) @ ((X0 @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ X2)))) @ ((X0 @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) @ ((cHOL4.pair.|comma| @ X1) @ X2)))))))))))) @ (^[X3]: (^[X4]: ((cHOL4.pair.pair_CASE @ X4) @ (^[X1]: (^[X2]: (cHOL4.combin.I @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X2)) @ ((cHOL4.pred_set.INSERT @ X1) @ (X3 @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ (X3 @ ((cHOL4.pair.|comma| @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))))))) (Twords.BIT_SET_curried_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.BIT_SET @ X0) @ X1)) @ (cHOL4.words.BIT_SET_tupled @ ((cHOL4.pair.|comma| @ X0) @ X1)))))))) (Twords.bit_field_insert_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.bit_field_insert @ X0) @ X1) @ X2)) @ (cHOL4.words.word_modify @ (^[X3]: ((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X3)) @ ((cHOL4.arithmetic.<= @ X3) @ X0))) @ ((cHOL4.fcp.fcp_index @ X2) @ ((cHOL4.arithmetic.- @ X3) @ X1))))))))))))) (Twords.word_sign_extend_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sign_extend @ X0) @ X1)) @ (cHOL4.words.n2w @ (((cHOL4.bit.SIGN_EXTEND @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.word_len_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_len @ X0)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) (Twords.bit_count_upto_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.bit_count_upto @ X0) @ X1)) @ ((cHOL4.sum_num.SUM @ X0) @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.fcp.fcp_index @ X1) @ X2)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))))))))) (Twords.bit_count_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.bit_count @ X0)) @ ((cHOL4.words.bit_count_upto @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))))) (Twords.word_2comp_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.words.w2n @ X0))))))) (Twords.word_add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.+ @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.word_mul_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.* @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.word_log2_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_log2 @ X0)) @ (cHOL4.words.n2w @ (cHOL4.bit.LOG2 @ (cHOL4.words.w2n @ X0))))))) (Twords.add_with_carry_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ X2)))) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.LET @ (^[X4]: ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X5]: (^[X6]: ((cHOL4.pair.|comma| @ X4) @ ((cHOL4.pair.|comma| @ X5) @ X6))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.w2n @ X4)) @ X3)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X4))))))) @ (cHOL4.words.n2w @ X3)))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.+ @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))) @ (((cHOL4.bool.COND @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0))))))))))) (Twords.word_sub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ X1)) @ ((cHOL4.words.word_add @ X0) @ (cHOL4.words.word_2comp @ X1)))))))) (Twords.word_div_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_div @ X0) @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.DIV @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.word_sdiv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sdiv @ X0) @ X1)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ ((cHOL4.words.word_div @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.word_2comp @ X1))) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_div @ (cHOL4.words.word_2comp @ X0)) @ X1)))) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_div @ X0) @ (cHOL4.words.word_2comp @ X1)))) @ ((cHOL4.words.word_div @ X0) @ X1))))))))) (Twords.word_mod_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mod @ X0) @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.MOD @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.word_srem_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_srem @ X0) @ X1)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_mod @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.word_2comp @ X1)))) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_mod @ (cHOL4.words.word_2comp @ X0)) @ X1)))) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ ((cHOL4.words.word_mod @ X0) @ (cHOL4.words.word_2comp @ X1))) @ ((cHOL4.words.word_mod @ X0) @ X1))))))))) (Twords.word_smod_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_smod @ X0) @ X1)) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: ((cHOL4.bool.LET @ (^[X4]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X4) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ X4) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.words.word_2comp @ X4)) @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X4)) @ X1))) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ ((cHOL4.words.word_add @ X4) @ X1)) @ X4))))) @ ((cHOL4.words.word_mod @ X2) @ X3))))) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_2comp @ X0)) @ X0))) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.words.word_2comp @ X1)) @ X1)))))))) (Twords.word_L2_def,((cHOL4.min.= @ cHOL4.words.word_L2) @ ((cHOL4.words.word_mul @ cHOL4.words.word_L) @ cHOL4.words.word_L))) (Twords.nzcv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.nzcv @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.pair.|comma| @ (cHOL4.words.word_msb @ X3)) @ ((cHOL4.pair.|comma| @ ((cHOL4.min.= @ X3) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.pair.|comma| @ ((cHOL4.bool.\/ @ ((cHOL4.bit.BIT @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2)) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X3)) @ (cHOL4.words.word_msb @ X0))))))))) @ (cHOL4.words.n2w @ X2)))) @ ((cHOL4.arithmetic.+ @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ (cHOL4.words.word_2comp @ X1)))))))))) (Twords.word_lt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X5)))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_gt_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X3)) @ ((cHOL4.min.= @ X2) @ X5)))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_le_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool.\/ @ X3) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X5))))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_ge_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.min.= @ X2) @ X5))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_ls_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool.\/ @ (cHOL4.bool.~ @ X4)) @ X3))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_hi_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hi @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: ((cHOL4.bool./\ @ X4) @ (cHOL4.bool.~ @ X3)))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_lo_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: (cHOL4.bool.~ @ X4))))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_hs_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ X0) @ X1)) @ ((cHOL4.bool.LET @ (cHOL4.pair.UNCURRY @ (^[X2]: (cHOL4.pair.UNCURRY @ (^[X3]: (cHOL4.pair.UNCURRY @ (^[X4]: (^[X5]: X4)))))))) @ ((cHOL4.words.nzcv @ X0) @ X1)))))))) (Twords.word_min_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_min @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_lo @ X0) @ X1)) @ X0) @ X1))))))) (Twords.word_max_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_max @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_lo @ X0) @ X1)) @ X1) @ X0))))))) (Twords.word_smin_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_smin @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_lt @ X0) @ X1)) @ X0) @ X1))))))) (Twords.word_smax_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_smax @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_lt @ X0) @ X1)) @ X1) @ X0))))))) (Twords.word_abs_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_abs @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_lt @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.word_2comp @ X0)) @ X0))))) (Twords.word_lsl_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X1) @ X2)) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ X2) @ X1)))))))))))) (Twords.word_lsr_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X1))))))))))) (Twords.word_asr_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.+ @ X2) @ X1))) @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X1))))))))))) (Twords.word_ror_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))))) (Twords.word_rol_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_rol @ X0) @ X1)) @ ((cHOL4.words.word_ror @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))))) (Twords.word_rrx_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_rrx @ ((cHOL4.pair.|comma| @ X0) @ X1))) @ ((cHOL4.pair.|comma| @ (cHOL4.words.word_lsb @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0) @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_lsr @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2))))))))))) (Twords.word_lsl_bv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl_bv @ X0) @ X1)) @ ((cHOL4.words.word_lsl @ X0) @ (cHOL4.words.w2n @ X1)))))))) (Twords.word_lsr_bv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr_bv @ X0) @ X1)) @ ((cHOL4.words.word_lsr @ X0) @ (cHOL4.words.w2n @ X1)))))))) (Twords.word_asr_bv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr_bv @ X0) @ X1)) @ ((cHOL4.words.word_asr @ X0) @ (cHOL4.words.w2n @ X1)))))))) (Twords.word_ror_bv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror_bv @ X0) @ X1)) @ ((cHOL4.words.word_ror @ X0) @ (cHOL4.words.w2n @ X1)))))))) (Twords.word_rol_bv_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_rol_bv @ X0) @ X1)) @ ((cHOL4.words.word_rol @ X0) @ (cHOL4.words.w2n @ X1)))))))) (Twords.word_join_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_join @ X0) @ X1)) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: ((cHOL4.words.word_or @ ((cHOL4.words.word_lsl @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ X3)))) @ (cHOL4.words.w2w @ X0))) @ (cHOL4.words.w2w @ X1)))))))) (Twords.word_concat_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_concat @ X0) @ X1)) @ (cHOL4.words.w2w @ ((cHOL4.words.word_join @ X0) @ X1)))))))) (Twords.word_replicate_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_replicate @ X0) @ X1)) @ (cHOL4.fcp.FCP @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.* @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.fcp.fcp_index @ X1) @ ((cHOL4.arithmetic.MOD @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))))))) (Twords.concat_word_list_def,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.concat_word_list @ cHOL4.list.NIL)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.concat_word_list @ ((cHOL4.list.CONS @ X0) @ X1))) @ ((cHOL4.words.word_or @ (cHOL4.words.w2w @ X0)) @ ((cHOL4.words.word_lsl @ (cHOL4.words.concat_word_list @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))))) (Twords.saturate_n2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.saturate_n2w @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ X0)) @ cHOL4.words.word_T) @ (cHOL4.words.n2w @ X0)))))) (Twords.saturate_w2w_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.saturate_w2w @ X0)) @ (cHOL4.words.saturate_n2w @ (cHOL4.words.w2n @ X0)))))) (Twords.saturate_add_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.saturate_add @ X0) @ X1)) @ (cHOL4.words.saturate_n2w @ ((cHOL4.arithmetic.+ @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.saturate_sub_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.saturate_sub @ X0) @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.saturate_mul_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.saturate_mul @ X0) @ X1)) @ (cHOL4.words.saturate_n2w @ ((cHOL4.arithmetic.* @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.n2w_itself_primitive_def,((cHOL4.min.= @ cHOL4.words.n2w_itself) @ ((cHOL4.relation.WFREC @ (cHOL4.min.|at| @ (^[X0]: (cHOL4.relation.WF @ X0)))) @ (^[X1]: (^[X2]: ((cHOL4.pair.pair_CASE @ X2) @ (^[X3]: (^[X4]: (cHOL4.combin.I @ (cHOL4.words.n2w @ X3)))))))))) (Twords.BIT_SET_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ (cHOL4.arithmetic.ODD @ X2))) @ ((X0 @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ cHOL4.num.0))) @ (cHOL4.bool.~ @ (cHOL4.arithmetic.ODD @ X2)))) @ ((X0 @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) @ ((X0 @ X1) @ X2))))))) @ (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((X0 @ X3) @ X4))))))))) (Twords.BIT_SET_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.BIT_SET @ X1) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ cHOL4.pred_set.EMPTY) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.ODD @ X0)) @ ((cHOL4.pred_set.INSERT @ X1) @ ((cHOL4.words.BIT_SET @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) @ ((cHOL4.words.BIT_SET @ (cHOL4.num.SUC @ X1)) @ ((cHOL4.arithmetic.DIV @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))))))) (Twords.ZERO_LT_dimword,((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (Twords.dimword_IS_TWICE_INT_MIN,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.* @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))) (Twords.dimword_sub_int_min,((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) (Twords.DIMINDEX_GT_0,((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) (Twords.ONE_LT_dimword,((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (Twords.EXISTS_HB,(cHOL4.bool.? @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.num.SUC @ X0))))) (Twords.MOD_DIMINDEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0))))) (Twords.BITS_ZEROL_DIMINDEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0)) @ X0))))) (Twords.MOD_2EXP_DIMINDEX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.bit.MOD_2EXP @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))))) (Twords.INT_MIN_SUM,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ ((cHOL4.arithmetic.* @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))) (Twords.ZERO_LT_INT_MIN,((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) (Twords.ZERO_LT_INT_MAX,((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)))) (Twords.ZERO_LE_INT_MAX,((cHOL4.arithmetic.<= @ cHOL4.num.0) @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value))) (Twords.ZERO_LT_UINT_MAX,((cHOL4.prim_rec.< @ cHOL4.num.0) @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value))) (Twords.INT_MIN_LT_DIMWORD,((cHOL4.prim_rec.< @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (Twords.INT_MAX_LT_DIMWORD,((cHOL4.prim_rec.< @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (Twords.dimindex_lt_dimword,((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) (Twords.BOUND_ORDER,((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) (Twords.dimindex_dimword_iso,((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) (Twords.dimindex_dimword_le_iso,((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) (Twords.dimindex_dimword_lt_iso,((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) (Twords.dimindex_int_min_iso,((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))) (Twords.dimindex_int_min_le_iso,((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))) (Twords.dimindex_int_min_lt_iso,((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))) (Twords.dimindex_int_max_iso,((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)))) (Twords.dimindex_int_max_le_iso,((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)))) (Twords.dimindex_int_max_lt_iso,((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.INT_MAX @ cHOL4.bool.the_value)))) (Twords.dimindex_uint_max_iso,((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)))) (Twords.dimindex_uint_max_le_iso,((cHOL4.min.= @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)))) (Twords.dimindex_uint_max_lt_iso,((cHOL4.min.= @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)) @ (cHOL4.words.UINT_MAX @ cHOL4.bool.the_value)))) (Twords.w2n_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2n @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))) (Twords.n2w_w2n,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.words.w2n @ X0))) @ X0)))) (Twords.word_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ X1))))))) (Twords.n2w_mod,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) @ (cHOL4.words.n2w @ X0))))) (Twords.n2w_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))) (Twords.ranged_word_nchotomy,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))))) (Twords.dimindex_1_cases,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.mod_dimindex,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) (Twords.WORD_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.num.SUC @ X1)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.==> @ (X0 @ (cHOL4.words.n2w @ X1))) @ (X0 @ (cHOL4.words.n2w @ (cHOL4.num.SUC @ X1))))))))) @ (cHOL4.bool.! @ (^[X2]: (X0 @ X2))))))) (Twords.w2n_11,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Twords.w2n_lt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) (Twords.word_0_n2w,((cHOL4.min.= @ (cHOL4.words.w2n @ (cHOL4.words.n2w @ cHOL4.num.0))) @ cHOL4.num.0)) (Twords.word_1_n2w,((cHOL4.min.= @ (cHOL4.words.w2n @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) (Twords.w2n_eq_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.w2n @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.n2w_dimword,((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.word_2comp_dimindex_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X0)) @ X0))))) (Twords.word_add_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.+ @ X0) @ X1)))))))) (Twords.word_mul_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.* @ X0) @ X1)))))))) (Twords.word_log2_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_log2 @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ (cHOL4.bit.LOG2 @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))))) (Twords.word_1comp_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))))) (Twords.word_2comp_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))))))) (Twords.word_lsb,((cHOL4.min.= @ cHOL4.words.word_lsb) @ (cHOL4.words.word_bit @ cHOL4.num.0))) (Twords.word_msb,((cHOL4.min.= @ cHOL4.words.word_msb) @ (cHOL4.words.word_bit @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_lsb_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_lsb @ (cHOL4.words.n2w @ X0))) @ (cHOL4.arithmetic.ODD @ X0))))) (Twords.word_msb_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))))) (Twords.word_msb_n2w_numeric,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))) (Twords.word_and_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ cHOL4.bool./\) @ X0) @ X1)))))))) (Twords.word_or_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ cHOL4.bool.\/) @ X0) @ X1)))))))) (Twords.word_xor_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (^[X2]: (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))))) @ X0) @ X1)))))))) (Twords.word_nand_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nand @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (^[X2]: (^[X3]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ X2) @ X3))))) @ X0) @ X1)))))))) (Twords.word_nor_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nor @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (^[X2]: (^[X3]: (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ X2) @ X3))))) @ X0) @ X1)))))))) (Twords.word_xnor_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xnor @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ cHOL4.min.=) @ X0) @ X1)))))))) (Twords.l2w_w2l,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.words.l2w @ X0) @ ((cHOL4.words.w2l @ X0) @ X1))) @ X1))))))) (Twords.w2l_l2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.w2l @ X0) @ ((cHOL4.words.l2w @ X0) @ X1))) @ ((cHOL4.numposrep.n2l @ X0) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.numposrep.l2n @ X0) @ X1)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))) (Twords.s2w_w2s,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X2)) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X4) @ X2)) @ ((cHOL4.min.= @ (X0 @ (X1 @ X4))) @ X4)))))) @ ((cHOL4.min.= @ (((cHOL4.words.s2w @ X2) @ X0) @ (((cHOL4.words.w2s @ X2) @ X1) @ X3))) @ X3))))))))))) (Twords.w2s_s2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (((cHOL4.words.w2s @ X0) @ X2) @ (((cHOL4.words.s2w @ X0) @ X1) @ X3))) @ (((cHOL4.ASCIInumbers.n2s @ X0) @ X2) @ ((cHOL4.arithmetic.MOD @ (((cHOL4.ASCIInumbers.s2n @ X0) @ X1) @ X3)) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))))))) (Twords.NUMERAL_LESS_THM,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ X1)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1)))) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ X1))))))))))) (Twords.word_bin_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_bin_list) @ cHOL4.words.word_to_bin_list)) @ cHOL4.combin.I)) (Twords.word_oct_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_oct_list) @ cHOL4.words.word_to_oct_list)) @ cHOL4.combin.I)) (Twords.word_dec_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_dec_list) @ cHOL4.words.word_to_dec_list)) @ cHOL4.combin.I)) (Twords.word_hex_list,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_hex_list) @ cHOL4.words.word_to_hex_list)) @ cHOL4.combin.I)) (Twords.word_bin_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_bin_string) @ cHOL4.words.word_to_bin_string)) @ cHOL4.combin.I)) (Twords.word_oct_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_oct_string) @ cHOL4.words.word_to_oct_string)) @ cHOL4.combin.I)) (Twords.word_dec_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_dec_string) @ cHOL4.words.word_to_dec_string)) @ cHOL4.combin.I)) (Twords.word_hex_string,((cHOL4.min.= @ ((cHOL4.combin.o @ cHOL4.words.word_from_hex_string) @ cHOL4.words.word_to_hex_string)) @ cHOL4.combin.I)) (Twords.word_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)))))) (Twords.word_eq_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ X1))))))))) (Twords.word_T,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ cHOL4.words.word_T) @ X0))))) (Twords.FCP_T_F,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ cHOL4.bool.T))) @ cHOL4.words.word_T)) @ ((cHOL4.min.= @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ cHOL4.bool.F))) @ (cHOL4.words.n2w @ cHOL4.num.0)))) (Twords.word_L,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ cHOL4.words.word_L) @ X0)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.word_H,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ cHOL4.words.word_H) @ X0)) @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.word_L2,((cHOL4.min.= @ cHOL4.words.word_L2) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ cHOL4.words.word_L))) (Twords.WORD_NEG_1,((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ cHOL4.words.word_T)) (Twords.WORD_NEG_1_T,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Twords.WORD_MSB_1COMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ (cHOL4.words.word_1comp @ X0))) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0)))))) (Twords.w2n_minus1,((cHOL4.min.= @ (cHOL4.words.w2n @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.WORD_NOT_NOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_1comp @ (cHOL4.words.word_1comp @ X0))) @ X0)))) (Twords.WORD_DE_MORGAN_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_and @ X0) @ X1))) @ ((cHOL4.words.word_or @ (cHOL4.words.word_1comp @ X0)) @ (cHOL4.words.word_1comp @ X1)))) @ ((cHOL4.min.= @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_or @ X0) @ X1))) @ ((cHOL4.words.word_and @ (cHOL4.words.word_1comp @ X0)) @ (cHOL4.words.word_1comp @ X1))))))))) (Twords.WORD_NOT_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.word_1comp @ X0)) @ (cHOL4.words.word_1comp @ X1))) @ ((cHOL4.words.word_xor @ X0) @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ (cHOL4.words.word_1comp @ X1))) @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_xor @ X0) @ X1)))) @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.word_1comp @ X0)) @ X1)) @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_xor @ X0) @ X1)))))))))) (Twords.WORD_AND_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ cHOL4.words.word_T) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ cHOL4.words.word_T)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ X0)) @ X0)))))))) (Twords.WORD_OR_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ cHOL4.words.word_T) @ X0)) @ cHOL4.words.word_T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ cHOL4.words.word_T)) @ cHOL4.words.word_T)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ X0)) @ X0)))))))) (Twords.WORD_XOR_CLAUSES,(cHOL4.bool.! @ (^[X0]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ cHOL4.words.word_T) @ X0)) @ (cHOL4.words.word_1comp @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ cHOL4.words.word_T)) @ (cHOL4.words.word_1comp @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (Twords.WORD_AND_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_and @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_and @ X0) @ ((cHOL4.words.word_and @ X1) @ X2)))))))))) (Twords.WORD_OR_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_or @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_or @ X0) @ ((cHOL4.words.word_or @ X1) @ X2)))))))))) (Twords.WORD_XOR_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_xor @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_xor @ X0) @ ((cHOL4.words.word_xor @ X1) @ X2)))))))))) (Twords.WORD_AND_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ X1)) @ ((cHOL4.words.word_and @ X1) @ X0))))))) (Twords.WORD_OR_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ X1)) @ ((cHOL4.words.word_or @ X1) @ X0))))))) (Twords.WORD_XOR_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ X1)) @ ((cHOL4.words.word_xor @ X1) @ X0))))))) (Twords.WORD_AND_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ X0)) @ X0)))) (Twords.WORD_OR_IDEM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ X0)) @ X0)))) (Twords.WORD_AND_ABSORD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ ((cHOL4.words.word_and @ X0) @ X1))) @ X0)))))) (Twords.WORD_OR_ABSORB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ ((cHOL4.words.word_or @ X0) @ X1))) @ X0)))))) (Twords.WORD_AND_COMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ (cHOL4.words.word_1comp @ X0))) @ (cHOL4.words.n2w @ cHOL4.num.0))))) (Twords.WORD_OR_COMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ (cHOL4.words.word_1comp @ X0))) @ cHOL4.words.word_T)))) (Twords.WORD_XOR_COMP,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ (cHOL4.words.word_1comp @ X0))) @ cHOL4.words.word_T)))) (Twords.WORD_RIGHT_AND_OVER_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_or @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_or @ ((cHOL4.words.word_and @ X0) @ X2)) @ ((cHOL4.words.word_and @ X1) @ X2)))))))))) (Twords.WORD_RIGHT_OR_OVER_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_and @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_and @ ((cHOL4.words.word_or @ X0) @ X2)) @ ((cHOL4.words.word_or @ X1) @ X2)))))))))) (Twords.WORD_RIGHT_AND_OVER_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_xor @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_and @ X0) @ X2)) @ ((cHOL4.words.word_and @ X1) @ X2)))))))))) (Twords.WORD_LEFT_AND_OVER_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ ((cHOL4.words.word_or @ X1) @ X2))) @ ((cHOL4.words.word_or @ ((cHOL4.words.word_and @ X0) @ X1)) @ ((cHOL4.words.word_and @ X0) @ X2)))))))))) (Twords.WORD_LEFT_OR_OVER_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ X0) @ ((cHOL4.words.word_and @ X1) @ X2))) @ ((cHOL4.words.word_and @ ((cHOL4.words.word_or @ X0) @ X1)) @ ((cHOL4.words.word_or @ X0) @ X2)))))))))) (Twords.WORD_LEFT_AND_OVER_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ ((cHOL4.words.word_xor @ X1) @ X2))) @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_and @ X0) @ X1)) @ ((cHOL4.words.word_and @ X0) @ X2)))))))))) (Twords.WORD_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ X0) @ X1)) @ ((cHOL4.words.word_or @ ((cHOL4.words.word_and @ X0) @ (cHOL4.words.word_1comp @ X1))) @ ((cHOL4.words.word_and @ X1) @ (cHOL4.words.word_1comp @ X0))))))))) (Twords.WORD_NAND_NOT_AND,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nand @ X0) @ X1)) @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_and @ X0) @ X1)))))))) (Twords.WORD_NOR_NOT_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_nor @ X0) @ X1)) @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_or @ X0) @ X1)))))))) (Twords.WORD_XNOR_NOT_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xnor @ X0) @ X1)) @ (cHOL4.words.word_1comp @ ((cHOL4.words.word_xor @ X0) @ X1)))))))) (Twords.WORD_ADD_OR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ ((cHOL4.words.word_or @ X0) @ X1)))))))) (Twords.WORD_ADD_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ ((cHOL4.words.word_and @ X0) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ ((cHOL4.words.word_xor @ X0) @ X1)))))))) (Twords.WORD_AND_EXP_SUB1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.n2w @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.MOD @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))))) (Twords.w2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.w2w @ X0)) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ X0) @ X1))))))))) (Twords.sw2sw,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.sw2sw @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ (cHOL4.words.word_msb @ X0))))))))) (Twords.w2w_id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2w @ X0)) @ X0)))) (Twords.sw2sw_id,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.sw2sw @ X0)) @ X0)))) (Twords.w2w_w2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2w @ (cHOL4.words.w2w @ X0))) @ (cHOL4.words.w2w @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0)))))) (Twords.sw2sw_sw2sw,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.sw2sw @ (cHOL4.words.sw2sw @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ (cHOL4.words.sw2sw @ (cHOL4.words.w2w @ X0))) @ (cHOL4.words.sw2sw @ X0)))))) (Twords.sw2sw_w2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.sw2sw @ X0)) @ ((cHOL4.words.word_or @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.words.word_lsl @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.w2w @ X0)))))) (Twords.word_bit,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ ((cHOL4.words.word_bit @ X1) @ X0)))))))) (Twords.word_slice_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_slice @ X0) @ X1) @ (cHOL4.words.n2w @ X2))) @ (cHOL4.words.n2w @ (((cHOL4.bit.SLICE @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1) @ X2)))))))))) (Twords.word_bits_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ (cHOL4.words.n2w @ X2))) @ (cHOL4.words.n2w @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1) @ X2)))))))))) (Twords.word_bit_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_bit @ X0) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.bit.BIT @ X0) @ X1)))))))) (Twords.word_signed_bits_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_signed_bits @ X0) @ X1) @ (cHOL4.words.n2w @ X2))) @ (cHOL4.words.n2w @ (((cHOL4.bit.SIGN_EXTEND @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.MIN @ (cHOL4.num.SUC @ X0)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1) @ X2))))))))))) (Twords.word_sign_extend_bits,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_signed_bits @ X0) @ X1) @ X2)) @ ((cHOL4.words.word_sign_extend @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.MIN @ (cHOL4.num.SUC @ X0)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ X1)) @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)))))))))) (Twords.word_index_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.n2w @ X1)) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bit.BIT @ X2) @ X1)) @ ((((cHOL4.combin.FAIL @ cHOL4.fcp.fcp_index) @ X0) @ (cHOL4.words.n2w @ X1)) @ X2)))))))))) (Twords.word_index,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.n2w @ X0)) @ X1)) @ ((cHOL4.bit.BIT @ X1) @ X0)))))))) (Twords.word_bits_w2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X1) @ X2) @ (cHOL4.words.w2w @ X0))) @ (cHOL4.words.w2w @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.MIN @ X1) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X2) @ X0)))))))))) (Twords.word_reverse_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ ((cHOL4.bit.BIT_REVERSE @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0)))))) (Twords.word_modify_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_modify @ X0) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ (((cHOL4.bit.BIT_MODIFY @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0) @ X1)))))))) (Twords.fcp_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.fcp.FCP @ X0)) @ ((cHOL4.words.word_modify @ (^[X1]: (^[X2]: (X0 @ X1)))) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.w2n_w2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2n @ (cHOL4.words.w2w @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0))))))) (Twords.w2n_w2w_le,(cHOL4.bool.! @ (^[X0]: ((cHOL4.arithmetic.<= @ (cHOL4.words.w2n @ (cHOL4.words.w2w @ X0))) @ (cHOL4.words.w2n @ X0))))) (Twords.w2w_lt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ (cHOL4.words.w2w @ X0))) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) (Twords.w2w_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2w @ (cHOL4.words.n2w @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0))))))) (Twords.w2w_0,((cHOL4.min.= @ (cHOL4.words.w2w @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.w2n_11_lift,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))) @ ((cHOL4.min.= @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))))))))) (Twords.word_extract_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X2) @ X1) @ (cHOL4.words.n2w @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.MIN @ X2) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1) @ X0))) @ (cHOL4.words.n2w @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.MIN @ X2) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1))) @ X1) @ X0))))))))))) (Twords.n2w_BITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ (((cHOL4.bit.BITS @ X0) @ X1) @ X2))) @ (((cHOL4.words.word_bits @ X0) @ X1) @ (cHOL4.words.n2w @ X2))))))))))) (Twords.word_extract_w2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X1) @ X2) @ (cHOL4.words.w2w @ X0))) @ (((cHOL4.words.word_extract @ X1) @ X2) @ X0)))))))))) (Twords.WORD_w2w_EXTRACT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.w2w @ X0)) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0))))) (Twords.WORD_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.words.word_bit @ X2) @ X0)) @ ((cHOL4.words.word_bit @ X2) @ X1)))))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Twords.BIT_UPDATE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.|colon|+ @ X0) @ X1)) @ (cHOL4.words.word_modify @ (^[X2]: (^[X3]: (((cHOL4.bool.COND @ ((cHOL4.min.= @ X2) @ X0)) @ X1) @ X3)))))))))) (Twords.WORD_MODIFY_BIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_modify @ X0) @ X1)) @ X2)) @ ((X0 @ X2) @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Twords.WORD_BIT_BITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_bit @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X0) @ X1)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Twords.WORD_BITS_COMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X2) @ X3) @ (((cHOL4.words.word_bits @ X0) @ X1) @ X4))) @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.+ @ X2) @ X1))) @ ((cHOL4.arithmetic.+ @ X3) @ X1)) @ X4))))))))))))) (Twords.WORD_BITS_EXTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2))))))))) (Twords.WORD_BITS_LSR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ X3)) @ (((cHOL4.words.word_bits @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X3)) @ X2))))))))))) (Twords.WORD_BITS_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))) (Twords.WORD_BITS_ZERO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))) (Twords.WORD_BITS_ZERO3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))) (Twords.WORD_BITS_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)))))))))) (Twords.WORD_EXTRACT_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2))) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.num.SUC @ X0)) @ X1)))))))))) (Twords.WORD_EXTRACT_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))) (Twords.WORD_EXTRACT_ZERO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))) (Twords.WORD_EXTRACT_ZERO3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))) (Twords.WORD_SLICE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_slice @ X0) @ X1) @ X2)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ X1))))))))) (Twords.WORD_SLICE_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_slice @ X0) @ X1) @ X2)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))) (Twords.WORD_SLICE_ZERO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.words.word_slice @ X1) @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))) (Twords.WORD_SLICE_BITS_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (((cHOL4.words.word_slice @ X0) @ cHOL4.num.0) @ X1)) @ (((cHOL4.words.word_bits @ X0) @ cHOL4.num.0) @ X1))))))) (Twords.WORD_BITS_SLICE_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ (((cHOL4.words.word_slice @ X0) @ X1) @ X2))) @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2))))))))) (Twords.WORD_SLICE_COMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.prim_rec.< @ X2) @ X0)))) @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ (((cHOL4.words.word_slice @ X0) @ X1) @ X4)) @ (((cHOL4.words.word_slice @ X2) @ X3) @ X4))) @ (((cHOL4.words.word_slice @ X0) @ X3) @ X4)))))))))))))) (Twords.WORD_EXTRACT_COMP_THM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X1) @ X2) @ (((cHOL4.words.word_extract @ X3) @ X4) @ X0))) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.MIN @ X3) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.+ @ X1) @ X4)) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X4)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.arithmetic.+ @ X2) @ X4)) @ X0))))))))))))) (Twords.WORD_EXTRACT_BITS_COMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X3) @ X2) @ (((cHOL4.words.word_bits @ X4) @ X1) @ X0))) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.MIN @ X4) @ ((cHOL4.arithmetic.+ @ X3) @ X1))) @ ((cHOL4.arithmetic.+ @ X2) @ X1)) @ X0))))))))))))) (Twords.WORD_ALL_BITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X1) @ cHOL4.num.0) @ X0)) @ X0))))))) (Twords.EXTRACT_ALL_BITS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ cHOL4.num.0) @ X1)) @ (cHOL4.words.w2w @ X1)))))))) (Twords.WORD_BITS_MIN_HIGH,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X1) @ X2) @ X0)) @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2) @ X0)))))))))) (Twords.WORD_EXTRACT_MIN_HIGH,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ X2)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ X0))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ X2))))))))))) (Twords.CONCAT_EXTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ X0) @ X1)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (((cHOL4.words.word_extract @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X3)) @ (((cHOL4.words.word_extract @ X1) @ X2) @ X3))) @ (((cHOL4.words.word_extract @ X0) @ X2) @ X3)))))))))))) (Twords.EXTRACT_CONCAT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ ((cHOL4.words.word_concat @ X0) @ X1))) @ X1)) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.words.word_concat @ X0) @ X1))) @ X0)))))))) (Twords.EXTRACT_JOIN,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X4) @ ((cHOL4.arithmetic.- @ X2) @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X0) @ X2) @ X5)) @ X4)) @ (((cHOL4.words.word_extract @ X1) @ X3) @ X5))) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3) @ X5)))))))))))))))) (Twords.EXTRACT_JOIN_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X4) @ ((cHOL4.arithmetic.- @ X2) @ X3)))))) @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X0) @ X2) @ X5)) @ X4)) @ (((cHOL4.words.word_extract @ X1) @ X3) @ X5))) @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3) @ X5)))))))))))))))) (Twords.EXTEND_EXTRACT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (cHOL4.words.w2w @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2))))))))))) (Twords.WORD_SLICE_OVER_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (((cHOL4.words.word_slice @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_slice @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_slice @ X0) @ X1) @ ((cHOL4.words.word_and @ X2) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (((cHOL4.words.word_slice @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_slice @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_slice @ X0) @ X1) @ ((cHOL4.words.word_or @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (((cHOL4.words.word_slice @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_slice @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_slice @ X0) @ X1) @ ((cHOL4.words.word_xor @ X2) @ X3)))))))))))))) (Twords.WORD_BITS_OVER_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_bits @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_bits @ X0) @ X1) @ ((cHOL4.words.word_and @ X2) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_bits @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_bits @ X0) @ X1) @ ((cHOL4.words.word_or @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (((cHOL4.words.word_bits @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_bits @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_bits @ X0) @ X1) @ ((cHOL4.words.word_xor @ X2) @ X3)))))))))))))) (Twords.WORD_w2w_OVER_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))) @ (cHOL4.words.w2w @ ((cHOL4.words.word_and @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))) @ (cHOL4.words.w2w @ ((cHOL4.words.word_or @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))) @ (cHOL4.words.w2w @ ((cHOL4.words.word_xor @ X0) @ X1)))))))))) (Twords.WORD_EXTRACT_OVER_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_extract @ X0) @ X1) @ ((cHOL4.words.word_and @ X2) @ X3)))))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_extract @ X0) @ X1) @ ((cHOL4.words.word_or @ X2) @ X3)))))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (((cHOL4.words.word_extract @ X0) @ X1) @ X3))) @ (((cHOL4.words.word_extract @ X0) @ X1) @ ((cHOL4.words.word_xor @ X2) @ X3)))))))))))))) (Twords.WORD_w2w_OVER_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.w2w @ ((cHOL4.words.word_add @ X0) @ X1))) @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ ((cHOL4.words.word_add @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))))))))) (Twords.WORD_w2w_OVER_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.w2w @ ((cHOL4.words.word_mul @ X0) @ X1))) @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ ((cHOL4.words.word_mul @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))))))))) (Twords.WORD_EXTRACT_OVER_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.words.word_add @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X0)) @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X1))))))))))) (Twords.WORD_EXTRACT_OVER_MUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)) @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ ((cHOL4.words.word_mul @ X0) @ X1))) @ ((cHOL4.words.word_mul @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X0)) @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X1))))))))))) (Twords.WORD_EXTRACT_OVER_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ ((cHOL4.words.word_add @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X0)) @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X1)))) @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ ((cHOL4.words.word_add @ X0) @ X1))))))))))) (Twords.WORD_EXTRACT_OVER_MUL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ ((cHOL4.words.word_mul @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X0)) @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ X1)))) @ (((cHOL4.words.word_extract @ X2) @ cHOL4.num.0) @ ((cHOL4.words.word_mul @ X0) @ X1))))))))))) (Twords.WORD_EXTRACT_ID,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X1)))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X1) @ cHOL4.num.0) @ X0)) @ X0))))))) (Twords.BIT_SET,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.bit.BIT @ X0) @ X1)) @ ((cHOL4.bool.IN @ X0) @ ((cHOL4.words.BIT_SET @ cHOL4.num.0) @ X1)))))))) (Twords.WORD_LITERAL_AND,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MIN @ (cHOL4.bit.LOG2 @ X0)) @ (cHOL4.bit.LOG2 @ X1)))) @ cHOL4.bool./\) @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ (cHOL4.bit.LOG2 @ X0))) @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ X2) @ (cHOL4.bool.~ @ X3))))) @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ (cHOL4.bit.LOG2 @ X0))) @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ X2) @ (cHOL4.bool.~ @ X3))))) @ X0) @ X1)))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MAX @ (cHOL4.bit.LOG2 @ X0)) @ (cHOL4.bit.LOG2 @ X1)))) @ cHOL4.bool.\/) @ X0) @ X1)))))))))))) (Twords.WORD_LITERAL_OR,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MAX @ (cHOL4.bit.LOG2 @ X0)) @ (cHOL4.bit.LOG2 @ X1)))) @ cHOL4.bool.\/) @ X0) @ X1)))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ (cHOL4.bit.LOG2 @ X1))) @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ X2) @ (cHOL4.bool.~ @ X3))))) @ X1) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ (cHOL4.bit.LOG2 @ X1))) @ (^[X2]: (^[X3]: ((cHOL4.bool./\ @ X2) @ (cHOL4.bool.~ @ X3))))) @ X1) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MIN @ (cHOL4.bit.LOG2 @ X0)) @ (cHOL4.bit.LOG2 @ X1)))) @ cHOL4.bool./\) @ X0) @ X1)))))))))))) (Twords.WORD_LITERAL_XOR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (cHOL4.words.n2w @ ((((cHOL4.bit.BITWISE @ (cHOL4.num.SUC @ ((cHOL4.arithmetic.MAX @ (cHOL4.bit.LOG2 @ X0)) @ (cHOL4.bit.LOG2 @ X1)))) @ (^[X2]: (^[X3]: (cHOL4.bool.~ @ ((cHOL4.min.= @ X2) @ X3))))) @ X0) @ X1)))))))) (Twords.word_replicate_concat_word_list,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_replicate @ X0) @ X1)) @ (cHOL4.words.concat_word_list @ ((cHOL4.list.GENLIST @ (cHOL4.combin.K @ X1)) @ X0)))))))) (Twords.bit_field_insert,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ ((((cHOL4.words.bit_field_insert @ X0) @ X1) @ X2) @ X3)) @ ((cHOL4.bool.LET @ (^[X4]: ((cHOL4.words.word_or @ ((cHOL4.words.word_and @ ((cHOL4.words.word_lsl @ (cHOL4.words.w2w @ X2)) @ X1)) @ X4)) @ ((cHOL4.words.word_and @ X3) @ (cHOL4.words.word_1comp @ X4))))) @ (((cHOL4.words.word_slice @ X0) @ X1) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))) (Twords.word_join_index,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_join @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ X2) @ X0)) @ ((cHOL4.fcp.fcp_index @ X1) @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))))))) (Twords.foldl_reduce_and,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_and @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.FOLDL @ cHOL4.words.word_and) @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.list.GENLIST @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.words.word_extract @ X3) @ X3) @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) (Twords.foldl_reduce_or,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_or @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.FOLDL @ cHOL4.words.word_or) @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.list.GENLIST @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.words.word_extract @ X3) @ X3) @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) (Twords.foldl_reduce_xor,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_xor @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.FOLDL @ cHOL4.words.word_xor) @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.list.GENLIST @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.words.word_extract @ X3) @ X3) @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) (Twords.foldl_reduce_nand,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_nand @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.FOLDL @ cHOL4.words.word_nand) @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.list.GENLIST @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.words.word_extract @ X3) @ X3) @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) (Twords.foldl_reduce_nor,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_nor @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.FOLDL @ cHOL4.words.word_nor) @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.list.GENLIST @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.words.word_extract @ X3) @ X3) @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) (Twords.foldl_reduce_xnor,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_xnor @ X0)) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.list.FOLDL @ cHOL4.words.word_xnor) @ (cHOL4.list.HD @ X1)) @ (cHOL4.list.TL @ X1)))) @ ((cHOL4.list.GENLIST @ (^[X2]: ((cHOL4.bool.LET @ (^[X3]: (((cHOL4.words.word_extract @ X3) @ X3) @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) (Twords.LOG2_w2n_lt,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ (cHOL4.bit.LOG2 @ (cHOL4.words.w2n @ X0))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))) (Twords.LOG2_w2n,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.bit.LOG2 @ (cHOL4.words.w2n @ X0))) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.fcp.fcp_index @ X0) @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))))) (Twords.LEAST_BIT_LT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ (cHOL4.while.LEAST @ (^[X1]: ((cHOL4.fcp.fcp_index @ X0) @ X1)))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))) (Twords.word_reduce_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_reduce @ X1) @ (cHOL4.words.n2w @ X0))) @ (cHOL4.fcp.FCP @ (cHOL4.combin.K @ ((cHOL4.bool.LET @ (^[X2]: (((cHOL4.list.FOLDL @ X1) @ (cHOL4.list.HD @ X2)) @ (cHOL4.list.TL @ X2)))) @ (((cHOL4.numposrep.BOOLIFY @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0) @ cHOL4.list.NIL)))))))))) (Twords.NOT_UINTMAXw,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ cHOL4.words.word_T))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X0) @ X1))))))))) (Twords.NOT_0w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ (cHOL4.bool.? @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.fcp.fcp_index @ X0) @ X1)))))))) (Twords.reduce_and,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_and @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.words.word_T)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.reduce_or,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.reduce_or @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.WORD_ADD_0,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ X0)))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ X0))))) (Twords.WORD_ADD_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ ((cHOL4.words.word_add @ X1) @ X2))) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_add @ X0) @ X1)) @ X2))))))))) (Twords.WORD_MULT_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ ((cHOL4.words.word_mul @ X1) @ X2))) @ ((cHOL4.words.word_mul @ ((cHOL4.words.word_mul @ X0) @ X1)) @ X2))))))))) (Twords.WORD_ADD_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ ((cHOL4.words.word_add @ X1) @ X0))))))) (Twords.WORD_MULT_COMM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ X1)) @ ((cHOL4.words.word_mul @ X1) @ X0))))))) (Twords.WORD_MULT_CLAUSES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ ((cHOL4.words.word_add @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1)) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ X0) @ X1)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ ((cHOL4.words.word_add @ X1) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.words.word_add @ X0) @ ((cHOL4.words.word_mul @ X0) @ X1))))))))))))) (Twords.WORD_LEFT_ADD_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ ((cHOL4.words.word_add @ X1) @ X2))) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ X0) @ X1)) @ ((cHOL4.words.word_mul @ X0) @ X2)))))))))) (Twords.WORD_RIGHT_ADD_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ ((cHOL4.words.word_add @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ X0) @ X2)) @ ((cHOL4.words.word_mul @ X1) @ X2)))))))))) (Twords.WORD_ADD_SUB_ASSOC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_add @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_add @ X0) @ ((cHOL4.words.word_sub @ X1) @ X2)))))))))) (Twords.WORD_ADD_SUB_SYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_add @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_sub @ X0) @ X2)) @ X1))))))))) (Twords.WORD_ADD_LINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))) (Twords.WORD_ADD_RINV,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ (cHOL4.words.word_2comp @ X0))) @ (cHOL4.words.n2w @ cHOL4.num.0))))) (Twords.WORD_SUB_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))) (Twords.WORD_SUB_ADD2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ ((cHOL4.words.word_sub @ X1) @ X0))) @ X1)))))) (Twords.WORD_ADD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_add @ X0) @ X1)) @ X1)) @ X0)))))) (Twords.WORD_SUB_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ ((cHOL4.words.word_sub @ X0) @ X1)) @ X1)) @ X0)))))) (Twords.WORD_ADD_EQ_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.words.word_sub @ X2) @ X1)))))))))) (Twords.WORD_ADD_INV_0_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.WORD_EQ_ADD_LCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ ((cHOL4.words.word_add @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Twords.WORD_EQ_ADD_RCANCEL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ ((cHOL4.words.word_add @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ X2))))))))) (Twords.WORD_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X0)) @ ((cHOL4.words.word_add @ (cHOL4.words.word_1comp @ X0)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.WORD_NOT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_1comp @ X0)) @ ((cHOL4.words.word_sub @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.WORD_NEG_0,((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.WORD_NEG_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.word_2comp @ X1)))))))) (Twords.WORD_NEG_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.words.word_2comp @ X0))) @ X0)))) (Twords.WORD_SUB_LNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_add @ X0) @ X1)))))))) (Twords.WORD_SUB_RNEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ (cHOL4.words.word_2comp @ X1))) @ ((cHOL4.words.word_add @ X0) @ X1))))))) (Twords.WORD_SUB_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ ((cHOL4.words.word_sub @ X1) @ X2))) @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_add @ X0) @ X2)) @ X1))))))))) (Twords.WORD_SUB_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ ((cHOL4.words.word_sub @ X0) @ X1))) @ X1)))))) (Twords.WORD_EQ_SUB_LADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ X0) @ ((cHOL4.words.word_sub @ X1) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X2)) @ X1))))))))) (Twords.WORD_EQ_SUB_RADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ X1)) @ X2)) @ ((cHOL4.min.= @ X0) @ ((cHOL4.words.word_add @ X2) @ X1)))))))))) (Twords.WORD_EQ_SUB_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X1) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X1) @ X0))))))) (Twords.WORD_LCANCEL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ X1)) @ ((cHOL4.words.word_sub @ X2) @ X1))) @ ((cHOL4.min.= @ X0) @ X2))))))))) (Twords.WORD_RCANCEL_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ X1)) @ ((cHOL4.words.word_sub @ X0) @ X2))) @ ((cHOL4.min.= @ X1) @ X2))))))))) (Twords.WORD_SUB_PLUS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ ((cHOL4.words.word_add @ X1) @ X2))) @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_sub @ X0) @ X1)) @ X2))))))))) (Twords.WORD_SUB_LZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.word_2comp @ X0))))) (Twords.WORD_SUB_RZERO,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ X0)))) (Twords.WORD_ADD_LID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ X1)) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.WORD_ADD_RID_UNIQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.WORD_SUM_ZERO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.word_2comp @ X1)))))))) (Twords.WORD_ADD_SUB2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_add @ X1) @ X0)) @ X1)) @ X0)))))) (Twords.WORD_ADD_SUB3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X0) @ ((cHOL4.words.word_add @ X0) @ X1))) @ (cHOL4.words.word_2comp @ X1))))))) (Twords.WORD_SUB_SUB3,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_sub @ X1) @ X0)) @ X1)) @ (cHOL4.words.word_2comp @ X0))))))) (Twords.WORD_EQ_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.word_2comp @ X1))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Twords.WORD_NEG_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X1)) @ X0)) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.word_2comp @ X0)))))))) (Twords.WORD_NEG_EQ_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.WORD_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X1)) @ X0)) @ ((cHOL4.words.word_sub @ X0) @ X1))))))) (Twords.WORD_SUB_NEG,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ (cHOL4.words.word_2comp @ X0)) @ (cHOL4.words.word_2comp @ X1))) @ ((cHOL4.words.word_sub @ X1) @ X0))))))) (Twords.WORD_NEG_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_sub @ X1) @ X0))) @ ((cHOL4.words.word_sub @ X0) @ X1))))))) (Twords.WORD_SUB_TRIANGLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ ((cHOL4.words.word_sub @ X0) @ X1)) @ ((cHOL4.words.word_sub @ X1) @ X2))) @ ((cHOL4.words.word_sub @ X0) @ X2))))))))) (Twords.WORD_NOT_0,((cHOL4.min.= @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ cHOL4.num.0))) @ cHOL4.words.word_T)) (Twords.WORD_NOT_T,((cHOL4.min.= @ (cHOL4.words.word_1comp @ cHOL4.words.word_T)) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.WORD_NEG_T,((cHOL4.min.= @ (cHOL4.words.word_2comp @ cHOL4.words.word_T)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.WORD_MULT_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ X0) @ (cHOL4.words.n2w @ X1))) @ X0))))))) (Twords.WORD_NEG_LMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_mul @ X0) @ X1))) @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ X0)) @ X1))))))) (Twords.WORD_NEG_RMUL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_mul @ X0) @ X1))) @ ((cHOL4.words.word_mul @ X0) @ (cHOL4.words.word_2comp @ X1)))))))) (Twords.WORD_NEG_MUL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_2comp @ X0)) @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) (Twords.sw2sw_w2w_add,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.sw2sw @ X0)) @ ((cHOL4.words.word_add @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.words.word_lsl @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.w2w @ X0)))))) (Twords.WORD_ADD_BIT0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_add @ X0) @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X0) @ cHOL4.num.0)) @ ((cHOL4.fcp.fcp_index @ X1) @ cHOL4.num.0))))))))) (Twords.WORD_ADD_BIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_add @ X1) @ X2)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.min.= @ X0) @ cHOL4.num.0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X1) @ cHOL4.num.0)) @ ((cHOL4.fcp.fcp_index @ X2) @ cHOL4.num.0)))) @ (((cHOL4.bool.COND @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_add @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X1)) @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X2))) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X1) @ X0)) @ ((cHOL4.fcp.fcp_index @ X2) @ X0))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ X1) @ X0)) @ ((cHOL4.fcp.fcp_index @ X2) @ X0)))))))))))))) (Twords.WORD_LEFT_SUB_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ X0) @ ((cHOL4.words.word_sub @ X1) @ X2))) @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_mul @ X0) @ X1)) @ ((cHOL4.words.word_mul @ X0) @ X2)))))))))) (Twords.WORD_RIGHT_SUB_DISTRIB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ ((cHOL4.words.word_sub @ X1) @ X2)) @ X0)) @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_mul @ X1) @ X0)) @ ((cHOL4.words.word_mul @ X2) @ X0)))))))))) (Twords.WORD_LITERAL_MULT,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.* @ X0) @ X1))))))))) (Twords.WORD_LITERAL_ADD,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X1)))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.+ @ X0) @ X1))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X1)))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ X1) @ X0))))))))))) (Twords.WORD_SUB_INTRO,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X1)) @ X0)) @ ((cHOL4.words.word_sub @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X0) @ (cHOL4.words.word_2comp @ X1))) @ ((cHOL4.words.word_sub @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ X2)) @ ((cHOL4.words.word_sub @ X2) @ ((cHOL4.words.word_mul @ X0) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_add @ X2) @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ X0)) @ X1))) @ ((cHOL4.words.word_sub @ X2) @ ((cHOL4.words.word_mul @ X0) @ X1)))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X3)) @ (cHOL4.words.word_2comp @ X3))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ X2) @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ X0)) @ X1))) @ ((cHOL4.words.word_add @ X2) @ ((cHOL4.words.word_mul @ X0) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ X2)) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ X0) @ X1)) @ X2)))))))))))))))) (Twords.n2w_SUC,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.n2w @ (cHOL4.num.SUC @ X0))) @ ((cHOL4.words.word_add @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.n2w_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ ((cHOL4.words.word_sub @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))))))))) (Twords.n2w_sub_eq_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ X0) @ X1)) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.WORD_H_WORD_L,((cHOL4.min.= @ cHOL4.words.word_H) @ ((cHOL4.words.word_sub @ cHOL4.words.word_L) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_L_MULT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ X0)) @ cHOL4.words.word_L)) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ cHOL4.words.word_L))))) (Twords.ASR_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ ((cHOL4.words.word_asr @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_asr @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Twords.LSR_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ ((cHOL4.words.word_lsr @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_lsr @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Twords.ROR_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ ((cHOL4.words.word_ror @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_ror @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Twords.LSL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ ((cHOL4.words.word_lsl @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_lsl @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Twords.ASR_LIMIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.words.word_asr @ X0) @ X1)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ cHOL4.words.word_T) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (Twords.ASR_UINT_MAX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ cHOL4.words.word_T) @ X0)) @ cHOL4.words.word_T)))) (Twords.LSR_LIMIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ X0) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.LSL_LIMIT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ X0) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.ROR_CYCLE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ X0) @ ((cHOL4.arithmetic.* @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ X0)))))) (Twords.ROR_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ X0) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.words.word_ror @ X0) @ X1))))))) (Twords.ROL_MOD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_rol @ X0) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))) @ ((cHOL4.words.word_rol @ X0) @ X1))))))) (Twords.LSL_ONE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ X0) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.words.word_add @ X0) @ X0))))) (Twords.ROR_UINT_MAX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ cHOL4.words.word_T) @ X0)) @ cHOL4.words.word_T)))) (Twords.ROR_ROL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_rol @ ((cHOL4.words.word_ror @ X0) @ X1)) @ X1)) @ X0)) @ ((cHOL4.min.= @ ((cHOL4.words.word_ror @ ((cHOL4.words.word_rol @ X0) @ X1)) @ X1)) @ X0))))))) (Twords.MOD_COMPLEMENT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ ((cHOL4.arithmetic.* @ X1) @ X0))))) @ ((cHOL4.min.= @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.* @ X1) @ X0)) @ X2)) @ X0)) @ ((cHOL4.arithmetic.MOD @ ((cHOL4.arithmetic.- @ X0) @ ((cHOL4.arithmetic.MOD @ X2) @ X0))) @ X0)))))))))) (Twords.ROL_ADD,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_rol @ ((cHOL4.words.word_rol @ X0) @ X1)) @ X2)) @ ((cHOL4.words.word_rol @ X0) @ ((cHOL4.arithmetic.+ @ X1) @ X2)))))))))) (Twords.ZERO_SHIFT,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_rol @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))) (Twords.SHIFT_ZERO,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ X0) @ cHOL4.num.0)) @ X0)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ X1) @ cHOL4.num.0)) @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ X2) @ cHOL4.num.0)) @ X2)))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ ((cHOL4.words.word_rol @ X3) @ cHOL4.num.0)) @ X3)))) @ (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ X4) @ cHOL4.num.0)) @ X4)))))))) (Twords.word_lsl_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ (cHOL4.words.n2w @ X1)) @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.* @ X1) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0)))))))))) (Twords.word_lsr_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ X0) @ X1)) @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1) @ X0))))))) (Twords.LSL_UINT_MAX,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ cHOL4.words.word_T) @ X0)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X0))))))) (Twords.word_asr_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ X1) @ X0)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X1)) @ ((cHOL4.words.word_or @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ ((cHOL4.arithmetic.MIN @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))) @ ((cHOL4.words.word_lsr @ X1) @ X0))) @ ((cHOL4.words.word_lsr @ X1) @ X0)))))))) (Twords.word_ror_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ (cHOL4.words.n2w @ X1)) @ X0)) @ ((cHOL4.bool.LET @ (^[X2]: (cHOL4.words.n2w @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2) @ X1)) @ ((cHOL4.arithmetic.* @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X1)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2))))))) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))) (Twords.word_rrx_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_rrx @ ((cHOL4.pair.|comma| @ X0) @ (cHOL4.words.n2w @ X1)))) @ ((cHOL4.pair.|comma| @ (cHOL4.arithmetic.ODD @ X1)) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.+ @ (((cHOL4.bit.BITS @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ X1)) @ ((cHOL4.bit.SBIT @ X0) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Twords.word_ror,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X2]: ((cHOL4.words.word_or @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X2) @ X0)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0) @ X0)) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X2))))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))))))))) (Twords.word_asr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_asr @ X0) @ X1)) @ (((cHOL4.bool.COND @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.words.word_or @ (((cHOL4.words.word_slice @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ cHOL4.words.word_T)) @ ((cHOL4.words.word_lsr @ X0) @ X1))) @ ((cHOL4.words.word_lsr @ X0) @ X1)))))))) (Twords.w2n_lsr,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.w2n @ ((cHOL4.words.word_lsr @ X0) @ X1))) @ ((cHOL4.arithmetic.DIV @ (cHOL4.words.w2n @ X0)) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))) (Twords.WORD_MUL_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ X0) @ X1)) @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1))) @ X0))))))) (Twords.WORD_ADD_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ ((cHOL4.words.word_add @ X1) @ X2)) @ X0)) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_lsl @ X1) @ X0)) @ ((cHOL4.words.word_lsl @ X2) @ X0)))))))))) (Twords.WORD_DIV_LSR,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ X0) @ X1)) @ ((cHOL4.words.word_div @ X0) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))))))))) (Twords.WORD_MOD_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_mod @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.n2w @ cHOL4.num.0))))) (Twords.WORD_MOD_POW2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ ((cHOL4.words.word_mod @ X0) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ (cHOL4.num.SUC @ X1))))) @ (((cHOL4.words.word_bits @ X1) @ cHOL4.num.0) @ X0)))))))) (Twords.SHIFT_1_SUB_1,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.fcp.fcp_index @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_lsl @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.prim_rec.< @ X0) @ X1)))))))) (Twords.LSR_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_lsr @ X2) @ X0)) @ ((cHOL4.words.word_lsr @ X1) @ X0))) @ ((cHOL4.words.word_lsr @ ((cHOL4.words.word_and @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_lsr @ X2) @ X0)) @ ((cHOL4.words.word_lsr @ X1) @ X0))) @ ((cHOL4.words.word_lsr @ ((cHOL4.words.word_or @ X2) @ X1)) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_lsr @ X2) @ X0)) @ ((cHOL4.words.word_lsr @ X1) @ X0))) @ ((cHOL4.words.word_lsr @ ((cHOL4.words.word_xor @ X2) @ X1)) @ X0))))))))))) (Twords.LSL_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_lsl @ X2) @ X0)) @ ((cHOL4.words.word_lsl @ X1) @ X0))) @ ((cHOL4.words.word_lsl @ ((cHOL4.words.word_and @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_lsl @ X2) @ X0)) @ ((cHOL4.words.word_lsl @ X1) @ X0))) @ ((cHOL4.words.word_lsl @ ((cHOL4.words.word_or @ X2) @ X1)) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_lsl @ X2) @ X0)) @ ((cHOL4.words.word_lsl @ X1) @ X0))) @ ((cHOL4.words.word_lsl @ ((cHOL4.words.word_xor @ X2) @ X1)) @ X0))))))))))) (Twords.ROR_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_ror @ X2) @ X0)) @ ((cHOL4.words.word_ror @ X1) @ X0))) @ ((cHOL4.words.word_ror @ ((cHOL4.words.word_and @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_ror @ X2) @ X0)) @ ((cHOL4.words.word_ror @ X1) @ X0))) @ ((cHOL4.words.word_ror @ ((cHOL4.words.word_or @ X2) @ X1)) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_ror @ X2) @ X0)) @ ((cHOL4.words.word_ror @ X1) @ X0))) @ ((cHOL4.words.word_ror @ ((cHOL4.words.word_xor @ X2) @ X1)) @ X0))))))))))) (Twords.ROL_BITWISE,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_and @ ((cHOL4.words.word_rol @ X2) @ X0)) @ ((cHOL4.words.word_rol @ X1) @ X0))) @ ((cHOL4.words.word_rol @ ((cHOL4.words.word_and @ X2) @ X1)) @ X0))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_rol @ X4) @ X0)) @ ((cHOL4.words.word_rol @ X3) @ X0))) @ ((cHOL4.words.word_rol @ ((cHOL4.words.word_or @ X4) @ X3)) @ X0))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.= @ ((cHOL4.words.word_xor @ ((cHOL4.words.word_rol @ X6) @ X0)) @ ((cHOL4.words.word_rol @ X5) @ X0))) @ ((cHOL4.words.word_rol @ ((cHOL4.words.word_xor @ X6) @ X5)) @ X0))))))))))) (Twords.WORD_2COMP_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ (cHOL4.words.word_2comp @ X1)) @ X0)) @ (cHOL4.words.word_2comp @ ((cHOL4.words.word_lsl @ X1) @ X0)))))))) (Twords.w2w_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.w2w @ ((cHOL4.words.word_lsl @ X0) @ X1))) @ (((cHOL4.bool.COND @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.words.word_lsl @ (cHOL4.words.w2w @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ cHOL4.num.0) @ X0))) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))) (Twords.n2w_DIV,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.DIV @ X0) @ ((cHOL4.arithmetic.EXP @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))) @ X1)))) @ ((cHOL4.words.word_lsr @ (cHOL4.words.n2w @ X0)) @ X1)))))))) (Twords.WORD_BITS_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (((cHOL4.words.word_bits @ X0) @ X1) @ ((cHOL4.words.word_lsl @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_bits @ ((cHOL4.arithmetic.- @ X0) @ X2)) @ ((cHOL4.arithmetic.- @ X1) @ X2)) @ X3)) @ ((cHOL4.arithmetic.- @ X2) @ X1))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))))))) (Twords.WORD_EXTRACT_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ ((cHOL4.words.word_lsl @ X3) @ X2))) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ X0) @ X2)) @ ((cHOL4.arithmetic.- @ X1) @ X2)) @ X3)) @ ((cHOL4.arithmetic.- @ X2) @ X1))) @ (cHOL4.words.n2w @ cHOL4.num.0))))))))))))) (Twords.WORD_EXTRACT_LSL2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.arithmetic.+ @ X0) @ X2))) @ ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X0) @ X1) @ X3)) @ X2)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1)) @ ((cHOL4.arithmetic.+ @ X2) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X1) @ X3)) @ X2)))))))))))) (Twords.EXTRACT_JOIN_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X4) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.- @ X2) @ X3)) @ X5)))))) @ ((cHOL4.min.= @ ((cHOL4.words.word_or @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X0) @ X2) @ X6)) @ X4)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X1) @ X3) @ X6)) @ X5))) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3) @ X6)) @ X5)))))))))))))))))) (Twords.EXTRACT_JOIN_ADD_LSL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: (cHOL4.bool.! @ (^[X6]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X3) @ X1)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ X2) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ ((cHOL4.arithmetic.+ @ X1) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ ((cHOL4.min.= @ X4) @ ((cHOL4.arithmetic.+ @ ((cHOL4.arithmetic.- @ X2) @ X3)) @ X5)))))) @ ((cHOL4.min.= @ ((cHOL4.words.word_add @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X0) @ X2) @ X6)) @ X4)) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ X1) @ X3) @ X6)) @ X5))) @ ((cHOL4.words.word_lsl @ (((cHOL4.words.word_extract @ ((cHOL4.arithmetic.MIN @ X0) @ ((cHOL4.arithmetic.MIN @ ((cHOL4.arithmetic.- @ ((cHOL4.arithmetic.+ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X3)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ X3) @ X6)) @ X5)))))))))))))))))) (Twords.word_extract_mask,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X0) @ X1) @ X2)) @ (((cHOL4.bool.COND @ ((cHOL4.arithmetic.<= @ X1) @ X0)) @ ((cHOL4.words.word_and @ ((cHOL4.words.word_lsr @ X2) @ X1)) @ ((cHOL4.words.word_sub @ ((cHOL4.words.word_lsl @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) @ ((cHOL4.arithmetic.- @ X0) @ X1))) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.n2w @ cHOL4.num.0)))))))))) (Twords.word_shift_bv,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.words.word_lsl @ X0) @ X1)) @ ((cHOL4.words.word_lsl_bv @ X0) @ (cHOL4.words.n2w @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.words.word_asr @ X0) @ X1)) @ ((cHOL4.words.word_asr_bv @ X0) @ (cHOL4.words.n2w @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.min.= @ ((cHOL4.words.word_lsr @ X0) @ X1)) @ ((cHOL4.words.word_lsr_bv @ X0) @ (cHOL4.words.n2w @ X1))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ror @ X0) @ X1)) @ ((cHOL4.words.word_ror_bv @ X0) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))))) @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_rol @ X0) @ X1)) @ ((cHOL4.words.word_rol_bv @ X0) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)))))))))))))) (Twords.WORD_NEG_L,((cHOL4.min.= @ (cHOL4.words.word_2comp @ cHOL4.words.word_L)) @ cHOL4.words.word_L)) (Twords.word_L_MULT_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X0))) @ cHOL4.words.word_L)) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ cHOL4.words.word_L))))) (Twords.word_L2_MULT,((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ cHOL4.words.word_L2) @ cHOL4.words.word_L2)) @ cHOL4.words.word_L2)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.words.word_mul @ cHOL4.words.word_L) @ cHOL4.words.word_L2)) @ cHOL4.words.word_L2)) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.n2w @ X0)) @ cHOL4.words.word_L2)) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ cHOL4.words.word_L2))))) @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_mul @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ X0))) @ cHOL4.words.word_L2)) @ (((cHOL4.bool.COND @ (cHOL4.arithmetic.EVEN @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ cHOL4.words.word_L2)))))))) (Twords.TWO_COMP_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.words.word_msb @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ cHOL4.words.word_L))) @ (cHOL4.words.word_msb @ (cHOL4.words.word_2comp @ X0))) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ (cHOL4.words.word_2comp @ X0)))))))) (Twords.TWO_COMP_POS_NEG,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.num.0)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ cHOL4.words.word_L))))) @ ((cHOL4.min.= @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0))) @ (cHOL4.words.word_msb @ (cHOL4.words.word_2comp @ X0))))))) (Twords.WORD_0_POS,(cHOL4.bool.~ @ (cHOL4.words.word_msb @ (cHOL4.words.n2w @ cHOL4.num.0)))) (Twords.TWO_COMP_POS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.word_msb @ (cHOL4.words.word_2comp @ X0))))))) (Twords.WORD_H_POS,(cHOL4.bool.~ @ (cHOL4.words.word_msb @ cHOL4.words.word_H))) (Twords.WORD_L_NEG,(cHOL4.words.word_msb @ cHOL4.words.word_L)) (Twords.WORD_GREATER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ X0) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X0))))))) (Twords.WORD_GREATER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X0))))))) (Twords.WORD_NOT_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.words.word_lt @ X0) @ X1))) @ ((cHOL4.words.word_le @ X1) @ X0))))))) (Twords.WORD_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X1)))))))))) (Twords.WORD_GT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.words.word_msb @ X0))) @ ((cHOL4.arithmetic.> @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0)))))))))) (Twords.WORD_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X1)))))))))) (Twords.WORD_GE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.words.word_msb @ X0))) @ ((cHOL4.arithmetic.>= @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))) @ ((cHOL4.bool./\ @ (cHOL4.words.word_msb @ X1)) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0)))))))))) (Twords.WORD_LO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))))))) (Twords.WORD_LS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))))))) (Twords.WORD_HI,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hi @ X0) @ X1)) @ ((cHOL4.arithmetic.> @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))))))) (Twords.WORD_HS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ X0) @ X1)) @ ((cHOL4.arithmetic.>= @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1)))))))) (Twords.WORD_NOT_LESS_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.words.word_le @ X0) @ X1))) @ ((cHOL4.words.word_lt @ X1) @ X0))))))) (Twords.WORD_LESS_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Twords.WORD_GREATER_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_gt @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Twords.WORD_LESS_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X2))) @ ((cHOL4.words.word_lt @ X0) @ X2))))))))) (Twords.WORD_LESS_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X2))) @ ((cHOL4.words.word_le @ X0) @ X2))))))))) (Twords.WORD_LESS_EQ_LESS_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X2))) @ ((cHOL4.words.word_lt @ X0) @ X2))))))))) (Twords.WORD_LESS_LESS_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X2))) @ ((cHOL4.words.word_lt @ X0) @ X2))))))))) (Twords.WORD_LESS_EQ_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X0))))))) (Twords.WORD_LESS_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X0))))))) (Twords.WORD_LESS_CASES_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.words.word_lt @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))) @ ((cHOL4.words.word_lt @ X1) @ X0))))))) (Twords.WORD_LESS_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X0)))))))) (Twords.WORD_LESS_EQ_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X0)))))))) (Twords.WORD_LESS_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.words.word_le @ X0) @ X0)))) (Twords.WORD_LESS_EQUAL_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Twords.WORD_LESS_IMP_LESS_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_le @ X0) @ X1))))))) (Twords.WORD_LESS_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.words.word_lt @ X0) @ X0))))) (Twords.WORD_LESS_LESS_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X0)))))))) (Twords.WORD_NOT_GREATER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.words.word_gt @ X0) @ X1))) @ ((cHOL4.words.word_le @ X0) @ X1))))))) (Twords.WORD_LESS_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.words.word_lt @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Twords.WORD_NOT_LESS_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.words.word_lt @ X0) @ X1)))))))) (Twords.WORD_HIGHER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hi @ X0) @ X1)) @ ((cHOL4.words.word_lo @ X1) @ X0))))))) (Twords.WORD_HIGHER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X0))))))) (Twords.WORD_NOT_LOWER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.words.word_lo @ X0) @ X1))) @ ((cHOL4.words.word_ls @ X1) @ X0))))))) (Twords.WORD_NOT_LOWER_EQUAL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.words.word_ls @ X0) @ X1))) @ ((cHOL4.words.word_lo @ X1) @ X0))))))) (Twords.WORD_LOWER_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Twords.WORD_HIGHER_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_hi @ X0) @ X1)) @ ((cHOL4.min.= @ X0) @ X1)))))))) (Twords.WORD_LOWER_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_lo @ X1) @ X2))) @ ((cHOL4.words.word_lo @ X0) @ X2))))))))) (Twords.WORD_LOWER_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X2))) @ ((cHOL4.words.word_ls @ X0) @ X2))))))))) (Twords.WORD_LOWER_EQ_LOWER_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.words.word_lo @ X1) @ X2))) @ ((cHOL4.words.word_lo @ X0) @ X2))))))))) (Twords.WORD_LOWER_LOWER_EQ_TRANS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X2))) @ ((cHOL4.words.word_lo @ X0) @ X2))))))))) (Twords.WORD_LOWER_EQ_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X0))))))) (Twords.WORD_LOWER_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X0))))))) (Twords.WORD_LOWER_CASES_IMP,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.words.word_lo @ X0) @ X1))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))) @ ((cHOL4.words.word_lo @ X1) @ X0))))))) (Twords.WORD_LOWER_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_lo @ X1) @ X0)))))))) (Twords.WORD_LOWER_EQ_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X0)))))))) (Twords.WORD_LOWER_EQ_REFL,(cHOL4.bool.! @ (^[X0]: ((cHOL4.words.word_ls @ X0) @ X0)))) (Twords.WORD_LOWER_EQUAL_ANTISYM,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X1) @ X0))) @ ((cHOL4.min.= @ X0) @ X1))))))) (Twords.WORD_LOWER_IMP_LOWER_OR_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X0) @ X1))))))) (Twords.WORD_LOWER_REFL,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.words.word_lo @ X0) @ X0))))) (Twords.WORD_LOWER_LOWER_CASES,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X0) @ X1)) @ ((cHOL4.words.word_lo @ X1) @ X0)))))))) (Twords.WORD_NOT_HIGHER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.bool.~ @ ((cHOL4.words.word_hi @ X0) @ X1))) @ ((cHOL4.words.word_ls @ X0) @ X1))))))) (Twords.WORD_LOWER_NOT_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.words.word_lo @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ X1)))))))) (Twords.WORD_NOT_LOWER_EQ,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.min.= @ X0) @ X1)) @ (cHOL4.bool.~ @ ((cHOL4.words.word_lo @ X0) @ X1)))))))) (Twords.WORD_L_PLUS_H,((cHOL4.min.= @ ((cHOL4.words.word_add @ cHOL4.words.word_L) @ cHOL4.words.word_H)) @ cHOL4.words.word_T)) (Twords.WORD_L_LESS_EQ,(cHOL4.bool.! @ (^[X0]: ((cHOL4.words.word_le @ cHOL4.words.word_L) @ X0)))) (Twords.WORD_LESS_EQ_H,(cHOL4.bool.! @ (^[X0]: ((cHOL4.words.word_le @ X0) @ cHOL4.words.word_H)))) (Twords.WORD_L_LESS_H,((cHOL4.words.word_lt @ cHOL4.words.word_L) @ cHOL4.words.word_H)) (Twords.NOT_INT_MIN_ZERO,(cHOL4.bool.~ @ ((cHOL4.min.= @ cHOL4.words.word_L) @ (cHOL4.words.n2w @ cHOL4.num.0)))) (Twords.ZERO_LO_INT_MIN,((cHOL4.words.word_lo @ (cHOL4.words.n2w @ cHOL4.num.0)) @ cHOL4.words.word_L)) (Twords.WORD_0_LS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.words.word_ls @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)))) (Twords.WORD_LS_T,(cHOL4.bool.! @ (^[X0]: ((cHOL4.words.word_ls @ X0) @ cHOL4.words.word_T)))) (Twords.WORD_ADD_LEFT_LO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ ((cHOL4.words.word_add @ X2) @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X2) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.words.word_ls @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X1)) @ X3)) @ X2))))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.w2n @ X1)) @ (cHOL4.words.w2n @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ (cHOL4.words.word_2comp @ X0)) @ X2)) @ ((cHOL4.words.word_lo @ X2) @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X0)) @ X1)))))))))))) (Twords.WORD_ADD_LEFT_LS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ ((cHOL4.words.word_add @ X2) @ X0)) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.words.word_ls @ X2) @ X3)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.words.word_ls @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X1)) @ X3)) @ X2))))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.w2n @ X1)) @ (cHOL4.words.w2n @ X0))))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ (cHOL4.words.word_2comp @ X0)) @ X2)) @ ((cHOL4.words.word_ls @ X2) @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X0)) @ X1)))))))))))) (Twords.WORD_ADD_RIGHT_LS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X1) @ ((cHOL4.words.word_add @ X2) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ X3) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_lo @ X2) @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X1)) @ X3)))))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.w2n @ X1)) @ (cHOL4.words.w2n @ X0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X2) @ (cHOL4.words.word_2comp @ X0))) @ ((cHOL4.words.word_ls @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ X2))))))))))) (Twords.WORD_ADD_RIGHT_LO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X1) @ ((cHOL4.words.word_add @ X2) @ X0))) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_ls @ X0) @ X1)) @ ((cHOL4.bool.LET @ (^[X3]: ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X3) @ X2)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_lo @ X2) @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X1)) @ X3)))))) @ (cHOL4.words.n2w @ ((cHOL4.arithmetic.- @ (cHOL4.words.w2n @ X1)) @ (cHOL4.words.w2n @ X0))))) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X2) @ (cHOL4.words.word_2comp @ X0))) @ ((cHOL4.words.word_lo @ ((cHOL4.words.word_add @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ X2))))))))))) (Twords.WORD_MSB_INT_MIN_LS,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.words.word_ls @ cHOL4.words.word_L) @ X0))))) (Twords.WORD_LT_LO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ cHOL4.words.word_L) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X1) @ cHOL4.words.word_L)) @ ((cHOL4.words.word_lo @ X0) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X0) @ cHOL4.words.word_L)) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X1) @ cHOL4.words.word_L)) @ ((cHOL4.words.word_lo @ X0) @ X1)))))))))) (Twords.WORD_LE_LS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.words.word_ls @ cHOL4.words.word_L) @ X0)) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ X1) @ cHOL4.words.word_L)) @ ((cHOL4.words.word_ls @ X0) @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X0) @ cHOL4.words.word_L)) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lo @ X1) @ cHOL4.words.word_L)) @ ((cHOL4.words.word_ls @ X0) @ X1)))))))))) (Twords.WORD_LESS_NEG_LEFT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_lo @ (cHOL4.words.word_2comp @ X1)) @ X0))))))))) (Twords.WORD_LESS_NEG_RIGHT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X0) @ (cHOL4.words.word_2comp @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_lo @ X1) @ (cHOL4.words.word_2comp @ X0)))))))))) (Twords.WORD_LS_word_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.WORD_LO_word_0,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))))))) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.~ @ ((cHOL4.words.word_lo @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0))))))) (Twords.WORD_ADD_LEFT_LO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ ((cHOL4.words.word_add @ X0) @ X1)) @ X1)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.words.word_lo @ (cHOL4.words.word_2comp @ X0)) @ X1))) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.word_2comp @ X0)))))))))) (Twords.WORD_ADD_LEFT_LS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ ((cHOL4.words.word_add @ X0) @ X1)) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.words.word_lo @ (cHOL4.words.word_2comp @ X0)) @ X1)) @ ((cHOL4.min.= @ X1) @ (cHOL4.words.word_2comp @ X0))))))))))) (Twords.WORD_ADD_RIGHT_LO2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X1) @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_lo @ X1) @ (cHOL4.words.word_2comp @ X0)))))))))) (Twords.WORD_ADD_RIGHT_LS2,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ X1) @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.bool.\/ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_lo @ X1) @ (cHOL4.words.word_2comp @ X0)))))))))) (Twords.word_msb_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.words.word_lt @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.word_abs,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_abs @ X0)) @ (cHOL4.fcp.FCP @ (^[X1]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0))) @ ((cHOL4.fcp.fcp_index @ X0) @ X1))) @ ((cHOL4.bool./\ @ (cHOL4.words.word_msb @ X0)) @ ((cHOL4.fcp.fcp_index @ (cHOL4.words.word_2comp @ X0)) @ X1))))))))) (Twords.word_abs_word_abs,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_abs @ (cHOL4.words.word_abs @ X0))) @ (cHOL4.words.word_abs @ X0))))) (Twords.word_abs_neg,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.word_abs @ (cHOL4.words.word_2comp @ X0))) @ (cHOL4.words.word_abs @ X0))))) (Twords.word_abs_diff,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.word_abs @ ((cHOL4.words.word_sub @ X0) @ X1))) @ (cHOL4.words.word_abs @ ((cHOL4.words.word_sub @ X1) @ X0)))))))) (Twords.FST_ADD_WITH_CARRY,((cHOL4.bool./\ @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.bool.F))))) @ ((cHOL4.words.word_add @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.words.word_1comp @ X3)) @ cHOL4.bool.T))))) @ ((cHOL4.words.word_sub @ X2) @ X3))))))) @ (cHOL4.bool.! @ (^[X4]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ (cHOL4.words.word_1comp @ X4)) @ ((cHOL4.pair.|comma| @ X5) @ cHOL4.bool.T))))) @ ((cHOL4.words.word_sub @ X5) @ X4))))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ X2) @ ((cHOL4.pair.|comma| @ (cHOL4.words.n2w @ X6)) @ cHOL4.bool.T))))) @ ((cHOL4.words.word_sub @ X2) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X6))))))))) @ (cHOL4.bool.! @ (^[X6]: (cHOL4.bool.! @ (^[X5]: ((cHOL4.min.= @ (cHOL4.pair.FST @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ (cHOL4.words.n2w @ X6)) @ ((cHOL4.pair.|comma| @ X5) @ cHOL4.bool.T))))) @ ((cHOL4.words.word_sub @ X5) @ (cHOL4.words.word_1comp @ (cHOL4.words.n2w @ X6))))))))))) (Twords.ADD_WITH_CARRY_SUB,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ (cHOL4.words.add_with_carry @ ((cHOL4.pair.|comma| @ X0) @ ((cHOL4.pair.|comma| @ (cHOL4.words.word_1comp @ X1)) @ cHOL4.bool.T)))) @ ((cHOL4.pair.|comma| @ ((cHOL4.words.word_sub @ X0) @ X1)) @ ((cHOL4.pair.|comma| @ ((cHOL4.words.word_ls @ X1) @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ X0)) @ (cHOL4.words.word_msb @ X1)))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_msb @ ((cHOL4.words.word_sub @ X0) @ X1))) @ (cHOL4.words.word_msb @ X0)))))))))))) (Twords.word_eq_n2w,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ (((cHOL4.bit.MOD_2EXP_EQ @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X0) @ X1))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.n2w @ X1)) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bit.MOD_2EXP_MAX @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.bit.MOD_2EXP_MAX @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ X1))))))) (Twords.word_lt_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lt @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) @ ((cHOL4.bool./\ @ X2) @ (cHOL4.bool.~ @ X3)))))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Twords.word_gt_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_gt @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.arithmetic.> @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X2)) @ X3))))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Twords.word_le_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) @ ((cHOL4.bool./\ @ X2) @ (cHOL4.bool.~ @ X3)))))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Twords.word_ge_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ge @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.bool.LET @ ((cHOL4.bool.LET @ (^[X2]: (^[X3]: ((cHOL4.bool.\/ @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ X2) @ X3)) @ ((cHOL4.arithmetic.>= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ X2)) @ X3))))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X0))) @ ((cHOL4.bit.BIT @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)))))))) (Twords.word_ls_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))) (Twords.word_hi_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hi @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.arithmetic.> @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))) (Twords.word_lo_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.prim_rec.< @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))) (Twords.word_hs_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_hs @ (cHOL4.words.n2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.arithmetic.>= @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.MOD @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))))) (Twords.w2n_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X0))) @ (cHOL4.bool.~ @ (cHOL4.words.word_msb @ X1)))) @ ((cHOL4.min.= @ (cHOL4.words.w2n @ ((cHOL4.words.word_add @ X0) @ X1))) @ ((cHOL4.arithmetic.+ @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.saturate_w2w_n2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.saturate_w2w @ (cHOL4.words.n2w @ X0))) @ ((cHOL4.bool.LET @ (^[X1]: (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.arithmetic.<= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ X1))) @ cHOL4.words.word_T) @ (cHOL4.words.n2w @ X1)))) @ ((cHOL4.arithmetic.MOD @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))))) (Twords.saturate_w2w,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.saturate_w2w @ X0)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.words.word_ls @ (cHOL4.words.w2w @ cHOL4.words.word_T)) @ X0))) @ cHOL4.words.word_T) @ (cHOL4.words.w2w @ X0)))))) (Twords.saturate_sub,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.saturate_sub @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_ls @ X0) @ X1)) @ (cHOL4.words.n2w @ cHOL4.num.0)) @ ((cHOL4.words.word_sub @ X0) @ X1)))))))) (Twords.saturate_add,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.saturate_add @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.words.word_ls @ ((cHOL4.words.word_sub @ cHOL4.words.word_T) @ X0)) @ X1)) @ cHOL4.words.word_T) @ ((cHOL4.words.word_add @ X0) @ X1)))))))) (Twords.NOT_FINITE_IMP_dimword_2,((cHOL4.min.==> @ (cHOL4.bool.~ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV))) @ ((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Twords.saturate_mul,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.saturate_mul @ X0) @ X1)) @ (((cHOL4.bool.COND @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.words.word_ls @ (cHOL4.words.w2w @ cHOL4.words.word_T)) @ ((cHOL4.words.word_mul @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.w2w @ X1))))) @ cHOL4.words.word_T) @ ((cHOL4.words.word_mul @ X0) @ X1)))))))) (Twords.WORD_DIVISION,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ X1) @ ((cHOL4.words.word_add @ ((cHOL4.words.word_mul @ ((cHOL4.words.word_div @ X1) @ X0)) @ X0)) @ ((cHOL4.words.word_mod @ X1) @ X0)))) @ ((cHOL4.words.word_lo @ ((cHOL4.words.word_mod @ X1) @ X0)) @ X0)))))))) (Twords.word_reverse_0,((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.word_reverse_word_T,((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.sw2sw_0,((cHOL4.min.= @ (cHOL4.words.sw2sw @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.sw2sw_word_T,((cHOL4.min.= @ (cHOL4.words.sw2sw @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_div_1,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_div @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)))) (Twords.word_bit_0,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.words.word_bit @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.word_lsb_word_T,(cHOL4.words.word_lsb @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_msb_word_T,(cHOL4.words.word_msb @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_bit_0_word_T,((cHOL4.words.word_bit @ cHOL4.num.0) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_log2_1,((cHOL4.min.= @ (cHOL4.words.word_log2 @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.word_join_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_join @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.w2w @ X0))))) (Twords.word_concat_0_0,((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) (Twords.w2w_eq_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.w2w @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ X1))))))))) (Twords.word_extract_eq_n2w,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ ((cHOL4.arithmetic.- @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ X1)) @ ((cHOL4.prim_rec.< @ X2) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (((cHOL4.words.word_extract @ X1) @ cHOL4.num.0) @ X0)) @ (cHOL4.words.n2w @ X2))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ X2))))))))))) (Twords.word_concat_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.prim_rec.< @ X0) @ (cHOL4.words.dimword @ cHOL4.bool.the_value)))) @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.n2w @ X0))) @ (cHOL4.words.n2w @ X0)))))) (Twords.word_concat_0_eq,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) @ ((cHOL4.bool./\ @ ((cHOL4.arithmetic.<= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value))) @ ((cHOL4.prim_rec.< @ X1) @ (cHOL4.words.dimword @ cHOL4.bool.the_value))))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ (cHOL4.words.n2w @ X1))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ X1))))))))) (Twords.word_join_word_T,((cHOL4.min.= @ ((cHOL4.words.word_join @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.word_concat_word_T,((cHOL4.min.= @ ((cHOL4.words.word_concat @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.w2w @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.lsr_1_word_T,((cHOL4.min.= @ ((cHOL4.words.word_lsr @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) @ cHOL4.words.word_H)) (Twords.word_rrx_0,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_rrx @ ((cHOL4.pair.|comma| @ cHOL4.bool.F) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.F) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.words.word_rrx @ ((cHOL4.pair.|comma| @ cHOL4.bool.T) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.F) @ cHOL4.words.word_L)))) (Twords.word_rrx_word_T,((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_rrx @ ((cHOL4.pair.|comma| @ cHOL4.bool.F) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.T) @ cHOL4.words.word_H))) @ ((cHOL4.min.= @ (cHOL4.words.word_rrx @ ((cHOL4.pair.|comma| @ cHOL4.bool.T) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.pair.|comma| @ cHOL4.bool.T) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.word_T_not_zero,(cHOL4.bool.~ @ ((cHOL4.min.= @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.n2w @ cHOL4.num.0)))) (Twords.WORD_LS_word_T,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_ls @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.words.word_ls @ X1) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.WORD_LO_word_T,((cHOL4.bool./\ @ (cHOL4.bool.! @ (^[X0]: (cHOL4.bool.~ @ ((cHOL4.words.word_lo @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ X0))))) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.word_lo @ X1) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Twords.WORD_LESS_0_word_T,((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.words.word_lt @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.words.word_le @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.word_reverse_thm,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.word_reverse @ X0))) @ X0)) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ ((cHOL4.words.word_lsl @ X0) @ X2))) @ ((cHOL4.words.word_lsr @ (cHOL4.words.word_reverse @ X0)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ ((cHOL4.words.word_lsr @ X0) @ X2))) @ ((cHOL4.words.word_lsl @ (cHOL4.words.word_reverse @ X0)) @ X2))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ ((cHOL4.words.word_or @ X0) @ X1))) @ ((cHOL4.words.word_or @ (cHOL4.words.word_reverse @ X0)) @ (cHOL4.words.word_reverse @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ ((cHOL4.words.word_and @ X0) @ X1))) @ ((cHOL4.words.word_and @ (cHOL4.words.word_reverse @ X0)) @ (cHOL4.words.word_reverse @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ ((cHOL4.words.word_xor @ X0) @ X1))) @ ((cHOL4.words.word_xor @ (cHOL4.words.word_reverse @ X0)) @ (cHOL4.words.word_reverse @ X1)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.word_1comp @ X0))) @ (cHOL4.words.word_1comp @ (cHOL4.words.word_reverse @ X0)))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.n2w @ cHOL4.num.0))) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.bool./\ @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ X0)) @ (cHOL4.words.n2w @ cHOL4.num.0))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.word_reverse @ X0)) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.word_2comp @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))) (Twords.bit_count_upto_0,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.bit_count_upto @ cHOL4.num.0) @ X0)) @ cHOL4.num.0)))) (Twords.bit_count_upto_SUC,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.words.bit_count_upto @ (cHOL4.num.SUC @ X1)) @ X0)) @ ((cHOL4.arithmetic.+ @ (((cHOL4.bool.COND @ ((cHOL4.fcp.fcp_index @ X0) @ X1)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))) @ cHOL4.num.0)) @ ((cHOL4.words.bit_count_upto @ X1) @ X0)))))))) (Twords.bit_count_upto_is_zero,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.min.= @ ((cHOL4.words.bit_count_upto @ X0) @ X1)) @ cHOL4.num.0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.prim_rec.< @ X2) @ X0)) @ (cHOL4.bool.~ @ ((cHOL4.fcp.fcp_index @ X1) @ X2))))))))))) (Twords.bit_count_is_zero,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.min.= @ (cHOL4.words.bit_count @ X0)) @ cHOL4.num.0)) @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))))) (Twords.WORD_FINITE,(cHOL4.bool.! @ (^[X0]: (cHOL4.pred_set.FINITE @ X0)))) (Twords.WORD_SET_INDUCT,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (X0 @ cHOL4.pred_set.EMPTY)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (X0 @ X1)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X2) @ X1))) @ (X0 @ ((cHOL4.pred_set.INSERT @ X2) @ X1)))))))))) @ (cHOL4.bool.! @ (^[X1]: (X0 @ X1))))))) (Twords.SUC_WORD_PRED,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.min.= @ (cHOL4.num.SUC @ (cHOL4.words.w2n @ ((cHOL4.words.word_sub @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) @ (cHOL4.words.w2n @ X0)))))) (Twords.WORD_PRED_THM,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X0) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ ((cHOL4.words.word_sub @ X0) @ (cHOL4.words.n2w @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) @ (cHOL4.words.w2n @ X0)))))) (Twords.LSR_LESS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ (cHOL4.words.n2w @ cHOL4.num.0)))) @ ((cHOL4.prim_rec.< @ cHOL4.num.0) @ X0))) @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ ((cHOL4.words.word_lsr @ X1) @ X0))) @ (cHOL4.words.w2n @ X1)))))))) (Twords.word_sub_w2n,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.words.word_ls @ X1) @ X0)) @ ((cHOL4.min.= @ (cHOL4.words.w2n @ ((cHOL4.words.word_sub @ X0) @ X1))) @ ((cHOL4.arithmetic.- @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.w2n @ X1))))))))) (Twords.WORD_LE_EQ_LS,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.words.word_le @ X0) @ X1)) @ ((cHOL4.words.word_ls @ X0) @ X1)))))))) (Twords.WORD_LT_EQ_LO,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1))) @ ((cHOL4.min.= @ ((cHOL4.words.word_lt @ X0) @ X1)) @ ((cHOL4.words.word_lo @ X0) @ X1)))))))) (Twords.WORD_ZERO_LE,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X0)) @ ((cHOL4.prim_rec.< @ (cHOL4.words.w2n @ X0)) @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)))))) (Twords.WORD_LT_SUB_UPPER,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X0))) @ ((cHOL4.words.word_lt @ ((cHOL4.words.word_sub @ X0) @ X1)) @ X0))))))) (Twords.WORD_SUB_LT,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1)) @ ((cHOL4.words.word_lt @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_lt @ (cHOL4.words.n2w @ cHOL4.num.0)) @ ((cHOL4.words.word_sub @ X0) @ X1))) @ ((cHOL4.words.word_lt @ ((cHOL4.words.word_sub @ X0) @ X1)) @ X0)))))))) (Twords.WORD_SUB_LE,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ X1)) @ ((cHOL4.words.word_le @ X1) @ X0))) @ ((cHOL4.bool./\ @ ((cHOL4.words.word_le @ (cHOL4.words.n2w @ cHOL4.num.0)) @ ((cHOL4.words.word_sub @ X0) @ X1))) @ ((cHOL4.words.word_le @ ((cHOL4.words.word_sub @ X0) @ X1)) @ X0)))))))) (Twords.dimindex_1,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) (Twords.finite_1,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_1,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))) (Twords.dimword_1,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) (Twords.dimindex_2,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) (Twords.finite_2,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_2,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))) (Twords.dimword_2,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.dimindex_3,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.finite_3,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_3,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.dimword_3,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.dimindex_4,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))) (Twords.finite_4,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_4,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.dimword_4,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.dimindex_5,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Twords.finite_5,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_5,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.dimword_5,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.dimindex_6,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))) (Twords.finite_6,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_6,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.dimword_6,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.dimindex_7,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.finite_7,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_7,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.dimword_7,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Twords.dimindex_8,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.finite_8,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_8,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Twords.dimword_8,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Twords.dimindex_9,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.finite_9,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_9,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))) (Twords.dimword_9,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Twords.dimindex_10,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))) (Twords.finite_10,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_10,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))) (Twords.dimword_10,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Twords.dimindex_11,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Twords.finite_11,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_11,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))) (Twords.dimword_11,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Twords.dimindex_12,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))) (Twords.finite_12,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_12,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))) (Twords.dimword_12,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))) (Twords.dimindex_16,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.finite_16,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_16,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))) (Twords.dimword_16,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))) (Twords.dimindex_20,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))) (Twords.finite_20,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_20,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))) (Twords.dimword_20,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))) (Twords.dimindex_24,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Twords.finite_24,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_24,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))) (Twords.dimword_24,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))) (Twords.dimindex_28,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Twords.finite_28,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_28,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))) (Twords.dimword_28,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))) (Twords.dimindex_30,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))) (Twords.finite_30,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_30,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))))) (Twords.dimword_30,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))) (Twords.dimindex_32,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))) (Twords.finite_32,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_32,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))))))) (Twords.dimword_32,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))) (Twords.dimindex_48,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0)))))))) (Twords.finite_48,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_48,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimword_48,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimindex_64,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))) (Twords.finite_64,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_64,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimword_64,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimindex_96,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT2 @ cHOL4.num.0))))))))) (Twords.finite_96,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_96,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimword_96,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimindex_128,((cHOL4.min.= @ (cHOL4.fcp.dimindex @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))) (Twords.finite_128,(cHOL4.pred_set.FINITE @ cHOL4.pred_set.UNIV)) (Twords.INT_MIN_128,((cHOL4.min.= @ (cHOL4.words.INT_MIN @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.dimword_128,((cHOL4.min.= @ (cHOL4.words.dimword @ cHOL4.bool.the_value)) @ (cHOL4.arithmetic.NUMERAL @ (cHOL4.arithmetic.BIT2 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ (cHOL4.arithmetic.BIT1 @ cHOL4.num.0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Twords.n2w_itself_ind,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.==> @ (cHOL4.bool.! @ (^[X1]: (X0 @ ((cHOL4.pair.|comma| @ X1) @ cHOL4.bool.the_value))))) @ (cHOL4.bool.! @ (^[X2]: (cHOL4.bool.! @ (^[X3]: (X0 @ ((cHOL4.pair.|comma| @ X2) @ X3)))))))))) (Twords.n2w_itself_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.words.n2w_itself @ ((cHOL4.pair.|comma| @ X0) @ cHOL4.bool.the_value))) @ (cHOL4.words.n2w @ X0))))) (Twot.cpl_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.wot.cpl @ X0) @ X1)) @ ((cHOL4.bool.\/ @ ((cHOL4.pred_set.SUBSET @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)))))))) (Twot.chain_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.chain @ X0)) @ (cHOL4.bool.! @ (^[X1]: (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ X2) @ X0))) @ ((cHOL4.wot.cpl @ X1) @ X2)))))))))) (Twot.mex_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.mex @ X0)) @ (cHOL4.pred_set.CHOICE @ (cHOL4.pred_set.COMPL @ X0)))))) (Twot.setsuc_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.setsuc @ X0)) @ ((cHOL4.pred_set.INSERT @ (cHOL4.wot.mex @ X0)) @ X0))))) (Twot.succl_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.succl @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ X0)) @ ((cHOL4.bool.IN @ (cHOL4.wot.setsuc @ X1)) @ X0)))))))) (Twot.uncl_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.uncl @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool./\ @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ (cHOL4.wot.chain @ X1))) @ ((cHOL4.bool.IN @ (cHOL4.pred_set.BIGUNION @ X1)) @ X0)))))))) (Twot.tower_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.tower @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.wot.succl @ X0)) @ (cHOL4.wot.uncl @ X0)))))) (Twot.t0_def,((cHOL4.min.= @ cHOL4.wot.t0) @ (cHOL4.pred_set.BIGINTER @ cHOL4.wot.tower))) (Twot.comparable_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.comparable @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X1) @ cHOL4.wot.t0)) @ ((cHOL4.wot.cpl @ X0) @ X1)))))))) (Twot.U_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.U @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ cHOL4.wot.t0)) @ ((cHOL4.bool.\/ @ ((cHOL4.pred_set.SUBSET @ X1) @ X0)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.wot.setsuc @ X0)) @ X1)))))))))) (Twot.lub_sub_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.lub_sub @ X0)) @ (cHOL4.pred_set.BIGUNION @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ cHOL4.wot.t0)) @ (cHOL4.bool.! @ (^[X2]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X2) @ X0)) @ ((cHOL4.pred_set.SUBSET @ X1) @ X2))))))))))))) (Twot.preds_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.preds @ X0)) @ (cHOL4.pred_set.BIGUNION @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ X1) @ ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X1) @ cHOL4.wot.t0)) @ (cHOL4.bool.~ @ ((cHOL4.bool.IN @ X0) @ X1))))))))))) (Twot.mex_less_eq_def,(cHOL4.bool.! @ (^[X0]: (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.= @ ((cHOL4.wot.mex_less_eq @ X0) @ X1)) @ ((cHOL4.pred_set.SUBSET @ (cHOL4.wot.preds @ X0)) @ (cHOL4.wot.preds @ X1)))))))) (Twot.mex_less_def,((cHOL4.min.= @ cHOL4.wot.mex_less) @ (cHOL4.relation.STRORD @ cHOL4.wot.mex_less_eq))) (Twot.WeakWellOrder_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.WeakWellOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.WeakOrder @ X0)) @ (cHOL4.bool.! @ (^[X1]: ((cHOL4.min.==> @ (cHOL4.bool.~ @ ((cHOL4.min.= @ X1) @ cHOL4.pred_set.EMPTY))) @ (cHOL4.bool.? @ (^[X2]: ((cHOL4.bool./\ @ ((cHOL4.bool.IN @ X2) @ X1)) @ (cHOL4.bool.! @ (^[X3]: ((cHOL4.min.==> @ ((cHOL4.bool.IN @ X3) @ X1)) @ ((X0 @ X2) @ X3))))))))))))))) (Twot.preds_image_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.preds_image @ X0)) @ (cHOL4.pred_set.GSPEC @ (^[X1]: ((cHOL4.pair.|comma| @ (cHOL4.wot.preds @ X1)) @ ((cHOL4.bool.IN @ X1) @ X0)))))))) (Twot.StrongWellOrder_def,(cHOL4.bool.! @ (^[X0]: ((cHOL4.min.= @ (cHOL4.wot.StrongWellOrder @ X0)) @ ((cHOL4.bool./\ @ (cHOL4.relation.StrongLinearOrder @ X0)) @ (cHOL4.relation.WF @ X0)))))) (Twot.StrongWellOrderExists,(cHOL4.bool.? @ (^[X0]: ((cHOL4.bool./\ @ (cHOL4.relation.StrongLinearOrder @ X0)) @ (cHOL4.relation.WF @ X0)))))