プログラミングキャンプ日記
超現実数
def assert_numeric(self): for x in self.left: for y in self.right: assert x < y
って朝ご飯食べに行かないとだな。
>>> import ast # 2.6以降 >>> ast.dump(ast.parse("1+2")) 'Module(body=[Expr(value=BinOp(left=Num(n=1), op=Add(), right=Num(n=2)))])'
>>> import parser, symbol, token >>> def change(ast): ... if type(ast) is list: ... return map(change, ast) ... else: ... leaf = symbol.sym_name.get(ast, ast) ... return token.tok_name.get(leaf, leaf) ... >>> change(parser.ast2list(parser.expr("1+2"))) ['eval_input', ['testlist', ['test', ['or_test', ['and_test', ['not_test', ['comparison', ['expr', ['xor_expr', ['and_expr', ['shift_expr', ['arith_expr', ['term', ['factor', ['power', ['atom', ['NUMBER', '1']]]]], ['PLUS', '+'], ['term', ['factor', ['power', ['atom', ['NUMBER', '2']]]]]]]]]]]]]]]], ['NEWLINE', ''], ['ENDMARKER', '']]
オートロックに閉め出された><
Coqで超現実数が任意の有理数を表現できることの証明を書こうとしたがリファレンスを眺めて挫折した。