{'fraction_non_alphanumeric': 0.020161290322580645, 'fraction_numerical': 0.016129032258064516, 'mean_word_length': 4.946107784431137, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Generating Verified LLVM from Isabelle/HOL

We present a framework to generate veriﬁed LLVM programs from Isabelle/HOL. It is based on a 6 code generator that generates LLVM text from a simpliﬁed fragment of LLVM, shallowly embedded 7 into Isabelle/HOL. On top, we have developed a separation logic, a veriﬁcation condition generator, 8 and an LLVM backend to the Isabelle Reﬁnement Framework. 9 As case studies, we have produced veriﬁed LLVM implementations of binary search and the 10 Knuth-Morris-Pratt string search algorithm. These are one order of magnitude faster than the 11 Standard-ML implementations produced with the original Reﬁnement Framework, and on par with 12 unveriﬁed C implementations. Adoption of the original correctness proofs to the new LLVM backend 13 was straightforward. 14 The trusted code base of our approach is the shallow embedding of the LLVM fragment and the 15 code generator, which is a pretty printer combined with some straightforward compilation steps.