{'fraction_non_alphanumeric': 0.015170670037926675, 'fraction_numerical': 0.0012642225031605564, 'mean_word_length': 5.439024390243903, '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}}
Transfer Principle Proof Tactic for Nonstandard Analysis

This paper describes a type constructor for nonstandard extensions of arbitrary types, generalizing the previous formalization of nonstandard analysis in Isabelle by Fleuriot and Paulson [1]. In addition to numeric types, nonstandard extensions of function spaces and set types also prove useful—they provide an elegant way to define internal functions and internal sets. The paper also describes an implementation of the transfer principle of nonstandard analysis as an Isabelle proof tactic. When applied to an appropriate subgoal, the transfer tactic replaces the subgoal with a logically equivalent one that does not refer to nonstandard types. The tactic produces a proof of the equivalence; it does not generate any new axioms.