def reverse_twice

qasim-bend-kit@0.1.0.2 · proof/JSON_StringProof.bend:57

import qasim-bend-kit@0.1.0.2/proof/JSON_StringProof.bend as JSONStringProof
import Base

57def reverse_twice(+text: String) -> {String.reverse(String.reverse(text)) == text : String}:
58    match text:
59        case SNil{}: {==}
60        case SCon{head, tail}:
61            Equal.trans(String, String.reverse(String.reverse(SCon{head, tail})),
62                String.reverse(String.reverse(tail) ++ SCon{head, SNil{}}), SCon{head, tail},
63                Equal.cong(String, String, String.reverse, String.reverse(SCon{head, tail}), String.reverse(tail) ++ SCon{head, SNil{}}, reverse_cons(head, tail)),
64                Equal.trans(String, String.reverse(String.reverse(tail) ++ SCon{head, SNil{}}),
65                    String.reverse(SCon{head, SNil{}}) ++ String.reverse(String.reverse(tail)), SCon{head, tail},
66                    reverse_append(String.reverse(tail), SCon{head, SNil{}}),
67                    Equal.cong(String, String, value => SCon{head, value}, String.reverse(String.reverse(tail)), tail, reverse_twice(tail))))

Uses (7)

Used by (1)