src/HOL/ex/mesontest2.ML
author nipkow
Fri, 24 Nov 2000 16:49:27 +0100
changeset 10519 ade64af4c57c
parent 10440 2074e62da354
child 11451 8abfb4f7bd02
permissions -rw-r--r--
hide many names from Datatype_Universe.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     1
(*  Title:      HOL/ex/mesontest2
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     2
    ID:         $Id$
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     4
    Copyright   2000  University of Cambridge
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     5
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     6
MORE and MUCH HARDER test data for the MESON proof procedure
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     7
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     8
Courtesy John Harrison 
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
     9
*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    10
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    11
(*All but the fastest are ignored to reduce build time*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    12
val even_hard_ones = false;
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    13
10440
2074e62da354 proper theory context for mesontest2;
wenzelm
parents: 10212
diff changeset
    14
fun prove (s,tac) = prove_goal (the_context ()) s (fn [] => [tac]);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    15
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    16
fun prove_hard arg = if even_hard_ones then prove arg else TrueI;
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    17
9000
c20d58286a51 cleaned up;
wenzelm
parents: 8557
diff changeset
    18
set timing;
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    19
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    20
(* ========================================================================= *)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    21
(* 100 problems selected from the TPTP library                               *)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    22
(* ========================================================================= *)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    23
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    24
(*
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    25
 * Original timings for John Harrison's MESON_TAC.
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    26
 * Timings below on a 600MHz Pentium III (perch)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    27
 * 
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    28
 * A few variable names have been primed to avoid clashing with constants.
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    29
 *
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    30
 * Changed numeric constants e.g. 0, 1, 2... to num0, num1, num2...
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    31
 *
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    32
 * Here's a list giving typical CPU times, as well as common names and
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    33
 * literature references.
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    34
 *
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    35
 * BOO003-1     34.6    B2 part 1 [McCharen, et al., 1976]; Lemma proved [Overbeek, et al., 1976]; prob2_part1.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    36
 * BOO004-1     36.7    B2 part 2 [McCharen, et al., 1976]; Lemma proved [Overbeek, et al., 1976]; prob2_part2.ver1 [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    37
 * BOO005-1     47.4    B3 part 1 [McCharen, et al., 1976]; B5 [McCharen, et al., 1976]; Lemma proved [Overbeek, et al., 1976]; prob3_part1.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    38
 * BOO006-1     48.4    B3 part 2 [McCharen, et al., 1976]; B6 [McCharen, et al., 1976]; Lemma proved [Overbeek, et al., 1976]; prob3_part2.ver1 [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    39
 * BOO011-1     19.0    B7 [McCharen, et al., 1976]; prob7.ver1 [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    40
 * CAT001-3     45.2    C1 [McCharen, et al., 1976]; p1.ver3.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    41
 * CAT003-3     10.5    C3 [McCharen, et al., 1976]; p3.ver3.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    42
 * CAT005-1    480.1    C5 [McCharen, et al., 1976]; p5.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    43
 * CAT007-1     11.9    C7 [McCharen, et al., 1976]; p7.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    44
 * CAT018-1     81.3    p18.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    45
 * COL001-2     16.0    C1 [Wos & McCune, 1988]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    46
 * COL023-1      5.1    [McCune & Wos, 1988]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    47
 * COL032-1     15.8    [McCune & Wos, 1988]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    48
 * COL052-2     13.2    bird4.ver2.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    49
 * COL075-2    116.9    [Jech, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    50
 * COM001-1      1.7    shortburst [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    51
 * COM002-1      4.4    burstall [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    52
 * COM002-2      7.4
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    53
 * COM003-2     22.1    [Brushi, 1991]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    54
 * COM004-1     45.1
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    55
 * GEO003-1     71.7    T3 [McCharen, et al., 1976]; t3.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    56
 * GEO017-2     78.8    D4.1 [Quaife, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    57
 * GEO027-3    181.5    D10.1 [Quaife, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    58
 * GEO058-2    104.0    R4 [Quaife, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    59
 * GEO079-1      2.4    GEOMETRY THEOREM [Slagle, 1967]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    60
 * GRP001-1     47.8    CADE-11 Competition 1 [Overbeek, 1990]; G1 [McCharen, et al., 1976]; THEOREM 1 [Lusk & McCune, 1993]; wos10 [Wilson & Minker, 1976]; xsquared.ver1.in [ANL]; [Robinson, 1963]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    61
 * GRP008-1     50.4    Problem 4 [Wos, 1965]; wos4 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    62
 * GRP013-1     40.2    Problem 11 [Wos, 1965]; wos11 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    63
 * GRP037-3     43.8    Problem 17 [Wos, 1965]; wos17 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    64
 * GRP031-2      3.2    ls23 [Lawrence & Starkey, 1974]; ls23 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    65
 * GRP034-4      2.5    ls26 [Lawrence & Starkey, 1974]; ls26 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    66
 * GRP047-2     11.7    [Veroff, 1992]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    67
 * GRP130-1    170.6    Bennett QG8 [TPTP]; QG8 [Slaney, 1993]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    68
 * GRP156-1     48.7    ax_mono1c [Schulz, 1995]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    69
 * GRP168-1    159.1    p01a [Schulz, 1995]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    70
 * HEN003-3     39.9    HP3 [McCharen, et al., 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    71
 * HEN007-2    125.7    H7 [McCharen, et al., 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    72
 * HEN008-4     62.0    H8 [McCharen, et al., 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    73
 * HEN009-5    136.3    H9 [McCharen, et al., 1976]; hp9.ver3.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    74
 * HEN012-3     48.5    new.ver2.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    75
 * LCL010-1    370.9    EC-73 [McCune & Wos, 1992]; ec_yq.in [OTTER]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    76
 * LCL077-2     51.6    morgan.two.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    77
 * LCL082-1     14.6    IC-1.1 [Wos, et al., 1990]; IC-65 [McCune & Wos, 1992]; ls2 [SETHEO]; S1 [Pfenning, 1988]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    78
 * LCL111-1    585.6    CADE-11 Competition 6 [Overbeek, 1990]; mv25.in [OTTER]; MV-57 [McCune & Wos, 1992]; mv.in part 2 [OTTER]; ovb6 [SETHEO]; THEOREM 6 [Lusk & McCune, 1993]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    79
 * LCL143-1     10.9    Lattice structure theorem 2 [Bonacina, 1991]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    80
 * LCL182-1    271.6    Problem 2.16 [Whitehead & Russell, 1927]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    81
 * LCL200-1     12.0    Problem 2.46 [Whitehead & Russell, 1927]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    82
 * LCL215-1    214.4    Problem 2.62 [Whitehead & Russell, 1927]; Problem 2.63 [Whitehead & Russell, 1927]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    83
 * LCL230-2      0.2    Pelletier 5 [Pelletier, 1986]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    84
 * LDA003-1     68.5    Problem 3 [Jech, 1993]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    85
 * MSC002-1      9.2    DBABHP [Michie, et al., 1972]; DBABHP [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    86
 * MSC003-1      3.2    HASPARTS-T1 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    87
 * MSC004-1      9.3    HASPARTS-T2 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    88
 * MSC005-1      1.8    Problem 5.1 [Plaisted, 1982]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    89
 * MSC006-1     39.0    nonob.lop [SETHEO]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    90
 * NUM001-1     14.0    Chang-Lee-10a [Chang, 1970]; ls28 [Lawrence & Starkey, 1974]; ls28 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    91
 * NUM021-1     52.3    ls65 [Lawrence & Starkey, 1974]; ls65 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    92
 * NUM024-1     64.6    ls75 [Lawrence & Starkey, 1974]; ls75 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    93
 * NUM180-1    621.2    LIM2.1 [Quaife]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    94
 * NUM228-1    575.9    TRECDEF4 cor. [Quaife]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    95
 * PLA002-1     37.4    Problem 5.7 [Plaisted, 1982]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    96
 * PLA006-1      7.2    [Segre & Elkan, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    97
 * PLA017-1    484.8    [Segre & Elkan, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    98
 * PLA022-1     19.1    [Segre & Elkan, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
    99
 * PLA022-2     19.7    [Segre & Elkan, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   100
 * PRV001-1     10.3    PV1 [McCharen, et al., 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   101
 * PRV003-1      3.9    E2 [McCharen, et al., 1976]; v2.lop [SETHEO]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   102
 * PRV005-1      4.3    E4 [McCharen, et al., 1976]; v4.lop [SETHEO]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   103
 * PRV006-1      6.0    E5 [McCharen, et al., 1976]; v5.lop [SETHEO]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   104
 * PRV009-1      2.2    Hoares FIND [Bledsoe, 1977]; Problem 5.5 [Plaisted, 1982]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   105
 * PUZ012-1      3.5    Boxes-of-fruit [Wos, 1988]; Boxes-of-fruit [Wos, et al., 1992]; boxes.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   106
 * PUZ020-1     56.6    knightknave.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   107
 * PUZ025-1     58.4    Problem 35 [Smullyan, 1978]; tandl35.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   108
 * PUZ029-1      5.1    pigs.ver1.in [ANL]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   109
 * RNG001-3     82.4    EX6-T? [Wilson & Minker, 1976]; ex6.lop [SETHEO]; Example 6a [Fleisig, et al., 1974]; FEX6T1 [SPRFN]; FEX6T2 [SPRFN]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   110
 * RNG001-5    399.8    Problem 21 [Wos, 1965]; wos21 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   111
 * RNG011-5      8.4    CADE-11 Competition Eq-10 [Overbeek, 1990]; PROBLEM 10 [Zhang, 1993]; THEOREM EQ-10 [Lusk & McCune, 1993]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   112
 * RNG023-6      9.1    [Stevens, 1987]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   113
 * RNG028-2      9.3    PROOF III [Anantharaman & Hsiang, 1990]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   114
 * RNG038-2     16.2    Problem 27 [Wos, 1965]; wos27 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   115
 * RNG040-2    180.5    Problem 29 [Wos, 1965]; wos29 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   116
 * RNG041-1     35.8    Problem 30 [Wos, 1965]; wos30 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   117
 * ROB010-1    205.0    Lemma 3.3 [Winker, 1990]; RA2 [Lusk & Wos, 1992]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   118
 * ROB013-1     23.6    Lemma 3.5 [Winker, 1990]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   119
 * ROB016-1     15.2    Corollary 3.7 [Winker, 1990]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   120
 * ROB021-1    230.4    [McCune, 1992]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   121
 * SET005-1    192.2    ls108 [Lawrence & Starkey, 1974]; ls108 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   122
 * SET009-1     10.5    ls116 [Lawrence & Starkey, 1974]; ls116 [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   123
 * SET025-4    694.7    Lemma 10 [Boyer, et al, 1986]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   124
 * SET046-5      2.3    p42.in [ANL]; Pelletier 42 [Pelletier, 1986]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   125
 * SET047-5      3.7    p43.in [ANL]; Pelletier 43 [Pelletier, 1986]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   126
 * SYN034-1      2.8    QW [Michie, et al., 1972]; QW [Wilson & Minker, 1976]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   127
 * SYN071-1      1.9    Pelletier 48 [Pelletier, 1986]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   128
 * SYN349-1     61.7    Ch17N5 [Tammet, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   129
 * SYN352-1      5.5    Ch18N4 [Tammet, 1994]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   130
 * TOP001-2     61.1    Lemma 1a [Wick & McCune, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   131
 * TOP002-2      0.4    Lemma 1b [Wick & McCune, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   132
 * TOP004-1    181.6    Lemma 1d [Wick & McCune, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   133
 * TOP004-2      9.0    Lemma 1d [Wick & McCune, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   134
 * TOP005-2    139.8    Lemma 1e [Wick & McCune, 1989]
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   135
 *)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   136
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   137
(*51194 inferences so far.  Searching to depth 13.  232.9 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   138
val BOO003_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   139
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   140
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   141
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   142
\  (! X Y. sum(X::'a,Y,add(X::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   143
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   144
\  (! Y X Z. sum(X::'a,Y,Z) --> sum(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   145
\  (! Y X Z. product(X::'a,Y,Z) --> product(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   146
\  (! X. sum(additive_identity::'a,X,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   147
\  (! X. sum(X::'a,additive_identity,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   148
\  (! X. product(multiplicative_identity::'a,X,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   149
\  (! X. product(X::'a,multiplicative_identity,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   150
\  (! Y Z X V3 V1 V2 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & product(X::'a,V3,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   151
\  (! Y Z V1 V2 X V3 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(X::'a,V3,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   152
\  (! Y Z V3 X V1 V2 V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & product(V3::'a,X,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   153
\  (! Y Z V1 V2 V3 X V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(V3::'a,X,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   154
\  (! Y Z X V3 V1 V2 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & sum(X::'a,V3,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   155
\  (! Y Z V1 V2 X V3 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(X::'a,V3,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   156
\  (! Y Z V3 X V1 V2 V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & sum(V3::'a,X,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   157
\  (! Y Z V1 V2 V3 X V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(V3::'a,X,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   158
\  (! X. sum(inverse(X),X,multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   159
\  (! X. sum(X::'a,inverse(X),multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   160
\  (! X. product(inverse(X),X,additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   161
\  (! X. product(X::'a,inverse(X),additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   162
\  (! X Y U V. sum(X::'a,Y,U) & sum(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   163
\  (! X Y U V. product(X::'a,Y,U) & product(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   164
\  (! X Y W Z. equal(X::'a,Y) & sum(X::'a,W,Z) --> sum(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   165
\  (! X W Y Z. equal(X::'a,Y) & sum(W::'a,X,Z) --> sum(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   166
\  (! X W Z Y. equal(X::'a,Y) & sum(W::'a,Z,X) --> sum(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   167
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   168
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   169
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   170
\  (! X Y W. equal(X::'a,Y) --> equal(add(X::'a,W),add(Y::'a,W))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   171
\  (! X W Y. equal(X::'a,Y) --> equal(add(W::'a,X),add(W::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   172
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   173
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   174
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   175
\  (~product(x::'a,x,x)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   176
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   177
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   178
(*51194 inferences so far.  Searching to depth 13. 204.6 secs
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   179
  Strange!  The previous problem also has 51194 inferences at depth 13.  They
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   180
   must be very similar!*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   181
val BOO004_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   182
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   183
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   184
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   185
\  (! X Y. sum(X::'a,Y,add(X::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   186
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   187
\  (! Y X Z. sum(X::'a,Y,Z) --> sum(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   188
\  (! Y X Z. product(X::'a,Y,Z) --> product(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   189
\  (! X. sum(additive_identity::'a,X,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   190
\  (! X. sum(X::'a,additive_identity,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   191
\  (! X. product(multiplicative_identity::'a,X,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   192
\  (! X. product(X::'a,multiplicative_identity,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   193
\  (! Y Z X V3 V1 V2 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & product(X::'a,V3,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   194
\  (! Y Z V1 V2 X V3 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(X::'a,V3,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   195
\  (! Y Z V3 X V1 V2 V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & product(V3::'a,X,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   196
\  (! Y Z V1 V2 V3 X V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(V3::'a,X,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   197
\  (! Y Z X V3 V1 V2 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & sum(X::'a,V3,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   198
\  (! Y Z V1 V2 X V3 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(X::'a,V3,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   199
\  (! Y Z V3 X V1 V2 V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & sum(V3::'a,X,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   200
\  (! Y Z V1 V2 V3 X V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(V3::'a,X,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   201
\  (! X. sum(inverse(X),X,multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   202
\  (! X. sum(X::'a,inverse(X),multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   203
\  (! X. product(inverse(X),X,additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   204
\  (! X. product(X::'a,inverse(X),additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   205
\  (! X Y U V. sum(X::'a,Y,U) & sum(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   206
\  (! X Y U V. product(X::'a,Y,U) & product(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   207
\  (! X Y W Z. equal(X::'a,Y) & sum(X::'a,W,Z) --> sum(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   208
\  (! X W Y Z. equal(X::'a,Y) & sum(W::'a,X,Z) --> sum(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   209
\  (! X W Z Y. equal(X::'a,Y) & sum(W::'a,Z,X) --> sum(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   210
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   211
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   212
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   213
\  (! X Y W. equal(X::'a,Y) --> equal(add(X::'a,W),add(Y::'a,W))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   214
\  (! X W Y. equal(X::'a,Y) --> equal(add(W::'a,X),add(W::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   215
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   216
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   217
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   218
\  (~sum(x::'a,x,x)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   219
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   220
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   221
(*74799 inferences so far.  Searching to depth 13.  290.0 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   222
val BOO005_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   223
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   224
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   225
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   226
\  (! X Y. sum(X::'a,Y,add(X::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   227
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   228
\  (! Y X Z. sum(X::'a,Y,Z) --> sum(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   229
\  (! Y X Z. product(X::'a,Y,Z) --> product(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   230
\  (! X. sum(additive_identity::'a,X,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   231
\  (! X. sum(X::'a,additive_identity,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   232
\  (! X. product(multiplicative_identity::'a,X,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   233
\  (! X. product(X::'a,multiplicative_identity,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   234
\  (! Y Z X V3 V1 V2 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & product(X::'a,V3,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   235
\  (! Y Z V1 V2 X V3 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(X::'a,V3,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   236
\  (! Y Z V3 X V1 V2 V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & product(V3::'a,X,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   237
\  (! Y Z V1 V2 V3 X V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(V3::'a,X,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   238
\  (! Y Z X V3 V1 V2 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & sum(X::'a,V3,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   239
\  (! Y Z V1 V2 X V3 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(X::'a,V3,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   240
\  (! Y Z V3 X V1 V2 V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & sum(V3::'a,X,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   241
\  (! Y Z V1 V2 V3 X V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(V3::'a,X,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   242
\  (! X. sum(inverse(X),X,multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   243
\  (! X. sum(X::'a,inverse(X),multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   244
\  (! X. product(inverse(X),X,additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   245
\  (! X. product(X::'a,inverse(X),additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   246
\  (! X Y U V. sum(X::'a,Y,U) & sum(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   247
\  (! X Y U V. product(X::'a,Y,U) & product(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   248
\  (! X Y W Z. equal(X::'a,Y) & sum(X::'a,W,Z) --> sum(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   249
\  (! X W Y Z. equal(X::'a,Y) & sum(W::'a,X,Z) --> sum(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   250
\  (! X W Z Y. equal(X::'a,Y) & sum(W::'a,Z,X) --> sum(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   251
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   252
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   253
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   254
\  (! X Y W. equal(X::'a,Y) --> equal(add(X::'a,W),add(Y::'a,W))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   255
\  (! X W Y. equal(X::'a,Y) --> equal(add(W::'a,X),add(W::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   256
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   257
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   258
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   259
\  (~sum(x::'a,multiplicative_identity,multiplicative_identity)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   260
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   261
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   262
(*74799 inferences so far.  Searching to depth 13.  314.6 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   263
val BOO006_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   264
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   265
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   266
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   267
\  (! X Y. sum(X::'a,Y,add(X::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   268
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   269
\  (! Y X Z. sum(X::'a,Y,Z) --> sum(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   270
\  (! Y X Z. product(X::'a,Y,Z) --> product(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   271
\  (! X. sum(additive_identity::'a,X,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   272
\  (! X. sum(X::'a,additive_identity,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   273
\  (! X. product(multiplicative_identity::'a,X,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   274
\  (! X. product(X::'a,multiplicative_identity,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   275
\  (! Y Z X V3 V1 V2 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & product(X::'a,V3,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   276
\  (! Y Z V1 V2 X V3 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(X::'a,V3,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   277
\  (! Y Z V3 X V1 V2 V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & product(V3::'a,X,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   278
\  (! Y Z V1 V2 V3 X V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(V3::'a,X,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   279
\  (! Y Z X V3 V1 V2 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & sum(X::'a,V3,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   280
\  (! Y Z V1 V2 X V3 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(X::'a,V3,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   281
\  (! Y Z V3 X V1 V2 V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & sum(V3::'a,X,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   282
\  (! Y Z V1 V2 V3 X V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(V3::'a,X,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   283
\  (! X. sum(inverse(X),X,multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   284
\  (! X. sum(X::'a,inverse(X),multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   285
\  (! X. product(inverse(X),X,additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   286
\  (! X. product(X::'a,inverse(X),additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   287
\  (! X Y U V. sum(X::'a,Y,U) & sum(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   288
\  (! X Y U V. product(X::'a,Y,U) & product(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   289
\  (! X Y W Z. equal(X::'a,Y) & sum(X::'a,W,Z) --> sum(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   290
\  (! X W Y Z. equal(X::'a,Y) & sum(W::'a,X,Z) --> sum(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   291
\  (! X W Z Y. equal(X::'a,Y) & sum(W::'a,Z,X) --> sum(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   292
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   293
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   294
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   295
\  (! X Y W. equal(X::'a,Y) --> equal(add(X::'a,W),add(Y::'a,W))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   296
\  (! X W Y. equal(X::'a,Y) --> equal(add(W::'a,X),add(W::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   297
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   298
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   299
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   300
\  (~product(x::'a,additive_identity,additive_identity)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   301
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   302
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   303
(*5 inferences so far.  Searching to depth 5.  1.3 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   304
val BOO011_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   305
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   306
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   307
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   308
\  (! X Y. sum(X::'a,Y,add(X::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   309
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   310
\  (! Y X Z. sum(X::'a,Y,Z) --> sum(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   311
\  (! Y X Z. product(X::'a,Y,Z) --> product(Y::'a,X,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   312
\  (! X. sum(additive_identity::'a,X,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   313
\  (! X. sum(X::'a,additive_identity,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   314
\  (! X. product(multiplicative_identity::'a,X,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   315
\  (! X. product(X::'a,multiplicative_identity,X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   316
\  (! Y Z X V3 V1 V2 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & product(X::'a,V3,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   317
\  (! Y Z V1 V2 X V3 V4. product(X::'a,Y,V1) & product(X::'a,Z,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(X::'a,V3,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   318
\  (! Y Z V3 X V1 V2 V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & product(V3::'a,X,V4) --> sum(V1::'a,V2,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   319
\  (! Y Z V1 V2 V3 X V4. product(Y::'a,X,V1) & product(Z::'a,X,V2) & sum(Y::'a,Z,V3) & sum(V1::'a,V2,V4) --> product(V3::'a,X,V4)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   320
\  (! Y Z X V3 V1 V2 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & sum(X::'a,V3,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   321
\  (! Y Z V1 V2 X V3 V4. sum(X::'a,Y,V1) & sum(X::'a,Z,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(X::'a,V3,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   322
\  (! Y Z V3 X V1 V2 V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & sum(V3::'a,X,V4) --> product(V1::'a,V2,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   323
\  (! Y Z V1 V2 V3 X V4. sum(Y::'a,X,V1) & sum(Z::'a,X,V2) & product(Y::'a,Z,V3) & product(V1::'a,V2,V4) --> sum(V3::'a,X,V4)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   324
\  (! X. sum(inverse(X),X,multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   325
\  (! X. sum(X::'a,inverse(X),multiplicative_identity)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   326
\  (! X. product(inverse(X),X,additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   327
\  (! X. product(X::'a,inverse(X),additive_identity)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   328
\  (! X Y U V. sum(X::'a,Y,U) & sum(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   329
\  (! X Y U V. product(X::'a,Y,U) & product(X::'a,Y,V) --> equal(U::'a,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   330
\  (! X Y W Z. equal(X::'a,Y) & sum(X::'a,W,Z) --> sum(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   331
\  (! X W Y Z. equal(X::'a,Y) & sum(W::'a,X,Z) --> sum(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   332
\  (! X W Z Y. equal(X::'a,Y) & sum(W::'a,Z,X) --> sum(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   333
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   334
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   335
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   336
\  (! X Y W. equal(X::'a,Y) --> equal(add(X::'a,W),add(Y::'a,W))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   337
\  (! X W Y. equal(X::'a,Y) --> equal(add(W::'a,X),add(W::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   338
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   339
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   340
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   341
\  (~equal(inverse(additive_identity),multiplicative_identity)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   342
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   343
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   344
(*4007 inferences so far.  Searching to depth 9.  13 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   345
val CAT001_3 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   346
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   347
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   348
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   349
\  (! Y X. equivalent(X::'a,Y) --> there_exists(X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   350
\  (! X Y. equivalent(X::'a,Y) --> equal(X::'a,Y)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   351
\  (! X Y. there_exists(X) & equal(X::'a,Y) --> equivalent(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   352
\  (! X. there_exists(domain(X)) --> there_exists(X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   353
\  (! X. there_exists(codomain(X)) --> there_exists(X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   354
\  (! Y X. there_exists(compos(X::'a,Y)) --> there_exists(domain(X))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   355
\  (! X Y. there_exists(compos(X::'a,Y)) --> equal(domain(X),codomain(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   356
\  (! X Y. there_exists(domain(X)) & equal(domain(X),codomain(Y)) --> there_exists(compos(X::'a,Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   357
\  (! X Y Z. equal(compos(X::'a,compos(Y::'a,Z)),compos(compos(X::'a,Y),Z))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   358
\  (! X. equal(compos(X::'a,domain(X)),X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   359
\  (! X. equal(compos(codomain(X),X),X)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   360
\  (! X Y. equivalent(X::'a,Y) --> there_exists(Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   361
\  (! X Y. there_exists(X) & there_exists(Y) & equal(X::'a,Y) --> equivalent(X::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   362
\  (! Y X. there_exists(compos(X::'a,Y)) --> there_exists(codomain(X))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   363
\  (! X Y. there_exists(f1(X::'a,Y)) | equal(X::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   364
\  (! X Y. equal(X::'a,f1(X::'a,Y)) | equal(Y::'a,f1(X::'a,Y)) | equal(X::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   365
\  (! X Y. equal(X::'a,f1(X::'a,Y)) & equal(Y::'a,f1(X::'a,Y)) --> equal(X::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   366
\  (! X Y. equal(X::'a,Y) & there_exists(X) --> there_exists(Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   367
\  (! X Y Z. equal(X::'a,Y) & equivalent(X::'a,Z) --> equivalent(Y::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   368
\  (! X Z Y. equal(X::'a,Y) & equivalent(Z::'a,X) --> equivalent(Z::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   369
\  (! X Y. equal(X::'a,Y) --> equal(domain(X),domain(Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   370
\  (! X Y. equal(X::'a,Y) --> equal(codomain(X),codomain(Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   371
\  (! X Y Z. equal(X::'a,Y) --> equal(compos(X::'a,Z),compos(Y::'a,Z))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   372
\  (! X Z Y. equal(X::'a,Y) --> equal(compos(Z::'a,X),compos(Z::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   373
\  (! A B C. equal(A::'a,B) --> equal(f1(A::'a,C),f1(B::'a,C))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   374
\  (! D F' E. equal(D::'a,E) --> equal(f1(F'::'a,D),f1(F'::'a,E))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   375
\  (there_exists(compos(a::'a,b))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   376
\  (! Y X Z. equal(compos(compos(a::'a,b),X),Y) & equal(compos(compos(a::'a,b),Z),Y) --> equal(X::'a,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   377
\  (there_exists(compos(b::'a,h))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   378
\  (equal(compos(b::'a,h),compos(b::'a,g))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   379
\  (~equal(h::'a,g)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   380
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   381
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   382
(*245 inferences so far.  Searching to depth 7.  1.0 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   383
val CAT003_3 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   384
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   385
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   386
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   387
\  (! Y X. equivalent(X::'a,Y) --> there_exists(X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   388
\  (! X Y. equivalent(X::'a,Y) --> equal(X::'a,Y)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   389
\  (! X Y. there_exists(X) & equal(X::'a,Y) --> equivalent(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   390
\  (! X. there_exists(domain(X)) --> there_exists(X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   391
\  (! X. there_exists(codomain(X)) --> there_exists(X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   392
\  (! Y X. there_exists(compos(X::'a,Y)) --> there_exists(domain(X))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   393
\  (! X Y. there_exists(compos(X::'a,Y)) --> equal(domain(X),codomain(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   394
\  (! X Y. there_exists(domain(X)) & equal(domain(X),codomain(Y)) --> there_exists(compos(X::'a,Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   395
\  (! X Y Z. equal(compos(X::'a,compos(Y::'a,Z)),compos(compos(X::'a,Y),Z))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   396
\  (! X. equal(compos(X::'a,domain(X)),X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   397
\  (! X. equal(compos(codomain(X),X),X)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   398
\  (! X Y. equivalent(X::'a,Y) --> there_exists(Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   399
\  (! X Y. there_exists(X) & there_exists(Y) & equal(X::'a,Y) --> equivalent(X::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   400
\  (! Y X. there_exists(compos(X::'a,Y)) --> there_exists(codomain(X))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   401
\  (! X Y. there_exists(f1(X::'a,Y)) | equal(X::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   402
\  (! X Y. equal(X::'a,f1(X::'a,Y)) | equal(Y::'a,f1(X::'a,Y)) | equal(X::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   403
\  (! X Y. equal(X::'a,f1(X::'a,Y)) & equal(Y::'a,f1(X::'a,Y)) --> equal(X::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   404
\  (! X Y. equal(X::'a,Y) & there_exists(X) --> there_exists(Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   405
\  (! X Y Z. equal(X::'a,Y) & equivalent(X::'a,Z) --> equivalent(Y::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   406
\  (! X Z Y. equal(X::'a,Y) & equivalent(Z::'a,X) --> equivalent(Z::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   407
\  (! X Y. equal(X::'a,Y) --> equal(domain(X),domain(Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   408
\  (! X Y. equal(X::'a,Y) --> equal(codomain(X),codomain(Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   409
\  (! X Y Z. equal(X::'a,Y) --> equal(compos(X::'a,Z),compos(Y::'a,Z))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   410
\  (! X Z Y. equal(X::'a,Y) --> equal(compos(Z::'a,X),compos(Z::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   411
\  (! A B C. equal(A::'a,B) --> equal(f1(A::'a,C),f1(B::'a,C))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   412
\  (! D F' E. equal(D::'a,E) --> equal(f1(F'::'a,D),f1(F'::'a,E))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   413
\  (there_exists(compos(a::'a,b))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   414
\  (! Y X Z. equal(compos(X::'a,compos(a::'a,b)),Y) & equal(compos(Z::'a,compos(a::'a,b)),Y) --> equal(X::'a,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   415
\  (there_exists(h)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   416
\  (equal(compos(h::'a,a),compos(g::'a,a))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   417
\  (~equal(g::'a,h)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   418
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   419
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   420
(*54288 inferences so far.  Searching to depth 14.  118.0 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   421
val CAT005_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   422
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   423
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   424
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   425
\  (! X Y. defined(X::'a,Y) --> product(X::'a,Y,compos(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   426
\  (! Z X Y. product(X::'a,Y,Z) --> defined(X::'a,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   427
\  (! X Xy Y Z. product(X::'a,Y,Xy) & defined(Xy::'a,Z) --> defined(Y::'a,Z)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   428
\  (! Y Xy Z X Yz. product(X::'a,Y,Xy) & product(Y::'a,Z,Yz) & defined(Xy::'a,Z) --> defined(X::'a,Yz)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   429
\  (! Xy Y Z X Yz Xyz. product(X::'a,Y,Xy) & product(Xy::'a,Z,Xyz) & product(Y::'a,Z,Yz) --> product(X::'a,Yz,Xyz)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   430
\  (! Z Yz X Y. product(Y::'a,Z,Yz) & defined(X::'a,Yz) --> defined(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   431
\  (! Y X Yz Xy Z. product(Y::'a,Z,Yz) & product(X::'a,Y,Xy) & defined(X::'a,Yz) --> defined(Xy::'a,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   432
\  (! Yz X Y Xy Z Xyz. product(Y::'a,Z,Yz) & product(X::'a,Yz,Xyz) & product(X::'a,Y,Xy) --> product(Xy::'a,Z,Xyz)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   433
\  (! Y X Z. defined(X::'a,Y) & defined(Y::'a,Z) & identity_map(Y) --> defined(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   434
\  (! X. identity_map(domain(X))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   435
\  (! X. identity_map(codomain(X))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   436
\  (! X. defined(X::'a,domain(X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   437
\  (! X. defined(codomain(X),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   438
\  (! X. product(X::'a,domain(X),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   439
\  (! X. product(codomain(X),X,X)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   440
\  (! X Y. defined(X::'a,Y) & identity_map(X) --> product(X::'a,Y,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   441
\  (! Y X. defined(X::'a,Y) & identity_map(Y) --> product(X::'a,Y,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   442
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   443
\  (! X Y Z W. equal(X::'a,Y) & product(X::'a,Z,W) --> product(Y::'a,Z,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   444
\  (! X Z Y W. equal(X::'a,Y) & product(Z::'a,X,W) --> product(Z::'a,Y,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   445
\  (! X Z W Y. equal(X::'a,Y) & product(Z::'a,W,X) --> product(Z::'a,W,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   446
\  (! X Y. equal(X::'a,Y) --> equal(domain(X),domain(Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   447
\  (! X Y. equal(X::'a,Y) --> equal(codomain(X),codomain(Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   448
\  (! X Y. equal(X::'a,Y) & identity_map(X) --> identity_map(Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   449
\  (! X Y Z. equal(X::'a,Y) & defined(X::'a,Z) --> defined(Y::'a,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   450
\  (! X Z Y. equal(X::'a,Y) & defined(Z::'a,X) --> defined(Z::'a,Y)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   451
\  (! X Z Y. equal(X::'a,Y) --> equal(compos(Z::'a,X),compos(Z::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   452
\  (! X Y Z. equal(X::'a,Y) --> equal(compos(X::'a,Z),compos(Y::'a,Z))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   453
\  (defined(a::'a,d)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   454
\  (identity_map(d)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   455
\  (~equal(domain(a),d)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   456
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   457
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   458
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   459
(*1728 inferences so far.  Searching to depth 10.  5.8 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   460
val CAT007_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   461
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   462
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   463
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   464
\  (! X Y. defined(X::'a,Y) --> product(X::'a,Y,compos(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   465
\  (! Z X Y. product(X::'a,Y,Z) --> defined(X::'a,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   466
\  (! X Xy Y Z. product(X::'a,Y,Xy) & defined(Xy::'a,Z) --> defined(Y::'a,Z)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   467
\  (! Y Xy Z X Yz. product(X::'a,Y,Xy) & product(Y::'a,Z,Yz) & defined(Xy::'a,Z) --> defined(X::'a,Yz)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   468
\  (! Xy Y Z X Yz Xyz. product(X::'a,Y,Xy) & product(Xy::'a,Z,Xyz) & product(Y::'a,Z,Yz) --> product(X::'a,Yz,Xyz)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   469
\  (! Z Yz X Y. product(Y::'a,Z,Yz) & defined(X::'a,Yz) --> defined(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   470
\  (! Y X Yz Xy Z. product(Y::'a,Z,Yz) & product(X::'a,Y,Xy) & defined(X::'a,Yz) --> defined(Xy::'a,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   471
\  (! Yz X Y Xy Z Xyz. product(Y::'a,Z,Yz) & product(X::'a,Yz,Xyz) & product(X::'a,Y,Xy) --> product(Xy::'a,Z,Xyz)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   472
\  (! Y X Z. defined(X::'a,Y) & defined(Y::'a,Z) & identity_map(Y) --> defined(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   473
\  (! X. identity_map(domain(X))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   474
\  (! X. identity_map(codomain(X))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   475
\  (! X. defined(X::'a,domain(X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   476
\  (! X. defined(codomain(X),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   477
\  (! X. product(X::'a,domain(X),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   478
\  (! X. product(codomain(X),X,X)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   479
\  (! X Y. defined(X::'a,Y) & identity_map(X) --> product(X::'a,Y,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   480
\  (! Y X. defined(X::'a,Y) & identity_map(Y) --> product(X::'a,Y,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   481
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   482
\  (! X Y Z W. equal(X::'a,Y) & product(X::'a,Z,W) --> product(Y::'a,Z,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   483
\  (! X Z Y W. equal(X::'a,Y) & product(Z::'a,X,W) --> product(Z::'a,Y,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   484
\  (! X Z W Y. equal(X::'a,Y) & product(Z::'a,W,X) --> product(Z::'a,W,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   485
\  (! X Y. equal(X::'a,Y) --> equal(domain(X),domain(Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   486
\  (! X Y. equal(X::'a,Y) --> equal(codomain(X),codomain(Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   487
\  (! X Y. equal(X::'a,Y) & identity_map(X) --> identity_map(Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   488
\  (! X Y Z. equal(X::'a,Y) & defined(X::'a,Z) --> defined(Y::'a,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   489
\  (! X Z Y. equal(X::'a,Y) & defined(Z::'a,X) --> defined(Z::'a,Y)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   490
\  (! X Z Y. equal(X::'a,Y) --> equal(compos(Z::'a,X),compos(Z::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   491
\  (! X Y Z. equal(X::'a,Y) --> equal(compos(X::'a,Z),compos(Y::'a,Z))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   492
\  (equal(domain(a),codomain(b))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   493
\  (~defined(a::'a,b)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   494
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   495
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   496
(*82895 inferences so far.  Searching to depth 13.  355 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   497
val CAT018_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   498
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   499
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   500
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   501
\  (! X Y. defined(X::'a,Y) --> product(X::'a,Y,compos(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   502
\  (! Z X Y. product(X::'a,Y,Z) --> defined(X::'a,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   503
\  (! X Xy Y Z. product(X::'a,Y,Xy) & defined(Xy::'a,Z) --> defined(Y::'a,Z)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   504
\  (! Y Xy Z X Yz. product(X::'a,Y,Xy) & product(Y::'a,Z,Yz) & defined(Xy::'a,Z) --> defined(X::'a,Yz)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   505
\  (! Xy Y Z X Yz Xyz. product(X::'a,Y,Xy) & product(Xy::'a,Z,Xyz) & product(Y::'a,Z,Yz) --> product(X::'a,Yz,Xyz)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   506
\  (! Z Yz X Y. product(Y::'a,Z,Yz) & defined(X::'a,Yz) --> defined(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   507
\  (! Y X Yz Xy Z. product(Y::'a,Z,Yz) & product(X::'a,Y,Xy) & defined(X::'a,Yz) --> defined(Xy::'a,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   508
\  (! Yz X Y Xy Z Xyz. product(Y::'a,Z,Yz) & product(X::'a,Yz,Xyz) & product(X::'a,Y,Xy) --> product(Xy::'a,Z,Xyz)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   509
\  (! Y X Z. defined(X::'a,Y) & defined(Y::'a,Z) & identity_map(Y) --> defined(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   510
\  (! X. identity_map(domain(X))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   511
\  (! X. identity_map(codomain(X))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   512
\  (! X. defined(X::'a,domain(X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   513
\  (! X. defined(codomain(X),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   514
\  (! X. product(X::'a,domain(X),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   515
\  (! X. product(codomain(X),X,X)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   516
\  (! X Y. defined(X::'a,Y) & identity_map(X) --> product(X::'a,Y,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   517
\  (! Y X. defined(X::'a,Y) & identity_map(Y) --> product(X::'a,Y,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   518
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   519
\  (! X Y Z W. equal(X::'a,Y) & product(X::'a,Z,W) --> product(Y::'a,Z,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   520
\  (! X Z Y W. equal(X::'a,Y) & product(Z::'a,X,W) --> product(Z::'a,Y,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   521
\  (! X Z W Y. equal(X::'a,Y) & product(Z::'a,W,X) --> product(Z::'a,W,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   522
\  (! X Y. equal(X::'a,Y) --> equal(domain(X),domain(Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   523
\  (! X Y. equal(X::'a,Y) --> equal(codomain(X),codomain(Y))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   524
\  (! X Y. equal(X::'a,Y) & identity_map(X) --> identity_map(Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   525
\  (! X Y Z. equal(X::'a,Y) & defined(X::'a,Z) --> defined(Y::'a,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   526
\  (! X Z Y. equal(X::'a,Y) & defined(Z::'a,X) --> defined(Z::'a,Y)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   527
\  (! X Z Y. equal(X::'a,Y) --> equal(compos(Z::'a,X),compos(Z::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   528
\  (! X Y Z. equal(X::'a,Y) --> equal(compos(X::'a,Z),compos(Y::'a,Z))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   529
\  (defined(a::'a,b)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   530
\  (defined(b::'a,c)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   531
\  (~defined(a::'a,compos(b::'a,c))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   532
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   533
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   534
(*1118 inferences so far.  Searching to depth 8.  2.3 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   535
val COL001_2 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   536
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   537
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   538
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   539
\  (! X Y Z. equal(apply(apply(apply(s::'a,X),Y),Z),apply(apply(X::'a,Z),apply(Y::'a,Z)))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   540
\  (! Y X. equal(apply(apply(k::'a,X),Y),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   541
\  (! X Y Z. equal(apply(apply(apply(b::'a,X),Y),Z),apply(X::'a,apply(Y::'a,Z)))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   542
\  (! X. equal(apply(i::'a,X),X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   543
\  (! A B C. equal(A::'a,B) --> equal(apply(A::'a,C),apply(B::'a,C))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   544
\  (! D F' E. equal(D::'a,E) --> equal(apply(F'::'a,D),apply(F'::'a,E))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   545
\  (! X. equal(apply(apply(apply(s::'a,apply(b::'a,X)),i),apply(apply(s::'a,apply(b::'a,X)),i)),apply(x::'a,apply(apply(apply(s::'a,apply(b::'a,X)),i),apply(apply(s::'a,apply(b::'a,X)),i))))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   546
\  (! Y. ~equal(Y::'a,apply(combinator::'a,Y))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   547
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   548
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   549
(*500 inferences so far.  Searching to depth 8.  0.9 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   550
val COL023_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   551
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   552
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   553
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   554
\  (! X Y Z. equal(apply(apply(apply(b::'a,X),Y),Z),apply(X::'a,apply(Y::'a,Z)))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   555
\  (! X Y Z. equal(apply(apply(apply(n::'a,X),Y),Z),apply(apply(apply(X::'a,Z),Y),Z))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   556
\  (! A B C. equal(A::'a,B) --> equal(apply(A::'a,C),apply(B::'a,C))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   557
\  (! D F' E. equal(D::'a,E) --> equal(apply(F'::'a,D),apply(F'::'a,E))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   558
\  (! Y. ~equal(Y::'a,apply(combinator::'a,Y))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   559
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   560
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   561
(*3018 inferences so far.  Searching to depth 10.  4.3 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   562
val COL032_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   563
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   564
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   565
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   566
\  (! X. equal(apply(m::'a,X),apply(X::'a,X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   567
\  (! Y X Z. equal(apply(apply(apply(q::'a,X),Y),Z),apply(Y::'a,apply(X::'a,Z)))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   568
\  (! A B C. equal(A::'a,B) --> equal(apply(A::'a,C),apply(B::'a,C))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   569
\  (! D F' E. equal(D::'a,E) --> equal(apply(F'::'a,D),apply(F'::'a,E))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   570
\  (! G H. equal(G::'a,H) --> equal(f(G),f(H))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   571
\  (! Y. ~equal(apply(Y::'a,f(Y)),apply(f(Y),apply(Y::'a,f(Y))))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   572
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   573
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   574
(*381878 inferences so far.  Searching to depth 13.  670.4 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   575
val COL052_2 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   576
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   577
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   578
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   579
\  (! X Y W. equal(response(compos(X::'a,Y),W),response(X::'a,response(Y::'a,W)))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   580
\  (! X Y. agreeable(X) --> equal(response(X::'a,common_bird(Y)),response(Y::'a,common_bird(Y)))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   581
\  (! Z X. equal(response(X::'a,Z),response(compatible(X),Z)) --> agreeable(X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   582
\  (! A B. equal(A::'a,B) --> equal(common_bird(A),common_bird(B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   583
\  (! C D. equal(C::'a,D) --> equal(compatible(C),compatible(D))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   584
\  (! Q R. equal(Q::'a,R) & agreeable(Q) --> agreeable(R)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   585
\  (! A B C. equal(A::'a,B) --> equal(compos(A::'a,C),compos(B::'a,C))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   586
\  (! D F' E. equal(D::'a,E) --> equal(compos(F'::'a,D),compos(F'::'a,E))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   587
\  (! G H I'. equal(G::'a,H) --> equal(response(G::'a,I'),response(H::'a,I'))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   588
\  (! J L K'. equal(J::'a,K') --> equal(response(L::'a,J),response(L::'a,K'))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   589
\  (agreeable(c)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   590
\  (~agreeable(a)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   591
\  (equal(c::'a,compos(a::'a,b))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   592
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   593
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   594
(*13201 inferences so far.  Searching to depth 11.  31.9 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   595
val COL075_2 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   596
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   597
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   598
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   599
\  (! Y X. equal(apply(apply(k::'a,X),Y),X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   600
\  (! X Y Z. equal(apply(apply(apply(abstraction::'a,X),Y),Z),apply(apply(X::'a,apply(k::'a,Z)),apply(Y::'a,Z)))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   601
\  (! D E F'. equal(D::'a,E) --> equal(apply(D::'a,F'),apply(E::'a,F'))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   602
\  (! G I' H. equal(G::'a,H) --> equal(apply(I'::'a,G),apply(I'::'a,H))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   603
\  (! A B. equal(A::'a,B) --> equal(b(A),b(B))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   604
\  (! C D. equal(C::'a,D) --> equal(c(C),c(D))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   605
\  (! Y. ~equal(apply(apply(Y::'a,b(Y)),c(Y)),apply(b(Y),b(Y)))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   606
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   607
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   608
(*33 inferences so far.  Searching to depth 7.  0.1 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   609
val COM001_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   610
 ("(! Goal_state Start_state. follows(Goal_state::'a,Start_state) --> succeeds(Goal_state::'a,Start_state)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   611
\  (! Goal_state Intermediate_state Start_state. succeeds(Goal_state::'a,Intermediate_state) & succeeds(Intermediate_state::'a,Start_state) --> succeeds(Goal_state::'a,Start_state)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   612
\  (! Start_state Label Goal_state. has(Start_state::'a,goto(Label)) & labels(Label::'a,Goal_state) --> succeeds(Goal_state::'a,Start_state)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   613
\  (! Start_state Condition Goal_state. has(Start_state::'a,ifthen(Condition::'a,Goal_state)) --> succeeds(Goal_state::'a,Start_state)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   614
\  (labels(loop::'a,p3)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   615
\  (has(p3::'a,ifthen(equal(register_j::'a,n),p4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   616
\  (has(p4::'a,goto(out))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   617
\  (follows(p5::'a,p4)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   618
\  (follows(p8::'a,p3)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   619
\  (has(p8::'a,goto(loop))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   620
\  (~succeeds(p3::'a,p3)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   621
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   622
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   623
(*533 inferences so far.  Searching to depth 13.  0.3 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   624
val COM002_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   625
 ("(! Goal_state Start_state. follows(Goal_state::'a,Start_state) --> succeeds(Goal_state::'a,Start_state)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   626
\  (! Goal_state Intermediate_state Start_state. succeeds(Goal_state::'a,Intermediate_state) & succeeds(Intermediate_state::'a,Start_state) --> succeeds(Goal_state::'a,Start_state)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   627
\  (! Start_state Label Goal_state. has(Start_state::'a,goto(Label)) & labels(Label::'a,Goal_state) --> succeeds(Goal_state::'a,Start_state)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   628
\  (! Start_state Condition Goal_state. has(Start_state::'a,ifthen(Condition::'a,Goal_state)) --> succeeds(Goal_state::'a,Start_state)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   629
\  (has(p1::'a,assign(register_j::'a,num0))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   630
\  (follows(p2::'a,p1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   631
\  (has(p2::'a,assign(register_k::'a,num1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   632
\  (labels(loop::'a,p3)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   633
\  (follows(p3::'a,p2)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   634
\  (has(p3::'a,ifthen(equal(register_j::'a,n),p4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   635
\  (has(p4::'a,goto(out))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   636
\  (follows(p5::'a,p4)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   637
\  (follows(p6::'a,p3)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   638
\  (has(p6::'a,assign(register_k::'a,times(num2::'a,register_k)))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   639
\  (follows(p7::'a,p6)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   640
\  (has(p7::'a,assign(register_j::'a,plus(register_j::'a,num1)))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   641
\  (follows(p8::'a,p7)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   642
\  (has(p8::'a,goto(loop))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   643
\  (~succeeds(p3::'a,p3)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   644
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   645
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   646
(*4821 inferences so far.  Searching to depth 14.  1.3 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   647
val COM002_2 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   648
 ("(! Goal_state Start_state. ~(fails(Goal_state::'a,Start_state) & follows(Goal_state::'a,Start_state))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   649
\  (! Goal_state Intermediate_state Start_state. fails(Goal_state::'a,Start_state) --> fails(Goal_state::'a,Intermediate_state) | fails(Intermediate_state::'a,Start_state)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   650
\  (! Start_state Label Goal_state. ~(fails(Goal_state::'a,Start_state) & has(Start_state::'a,goto(Label)) & labels(Label::'a,Goal_state))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   651
\  (! Start_state Condition Goal_state. ~(fails(Goal_state::'a,Start_state) & has(Start_state::'a,ifthen(Condition::'a,Goal_state)))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   652
\  (has(p1::'a,assign(register_j::'a,num0))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   653
\  (follows(p2::'a,p1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   654
\  (has(p2::'a,assign(register_k::'a,num1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   655
\  (labels(loop::'a,p3)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   656
\  (follows(p3::'a,p2)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   657
\  (has(p3::'a,ifthen(equal(register_j::'a,n),p4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   658
\  (has(p4::'a,goto(out))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   659
\  (follows(p5::'a,p4)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   660
\  (follows(p6::'a,p3)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   661
\  (has(p6::'a,assign(register_k::'a,times(num2::'a,register_k)))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   662
\  (follows(p7::'a,p6)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   663
\  (has(p7::'a,assign(register_j::'a,plus(register_j::'a,num1)))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   664
\  (follows(p8::'a,p7)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   665
\  (has(p8::'a,goto(loop))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   666
\  (fails(p3::'a,p3)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   667
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   668
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   669
(*98 inferences so far.  Searching to depth 10.  1.1 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   670
val COM003_2 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   671
 ("(! X Y Z. program_decides(X) & program(Y) --> decides(X::'a,Y,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   672
\  (! X. program_decides(X) | program(f2(X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   673
\  (! X. decides(X::'a,f2(X),f1(X)) --> program_decides(X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   674
\  (! X. program_program_decides(X) --> program(X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   675
\  (! X. program_program_decides(X) --> program_decides(X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   676
\  (! X. program(X) & program_decides(X) --> program_program_decides(X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   677
\  (! X. algorithm_program_decides(X) --> algorithm(X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   678
\  (! X. algorithm_program_decides(X) --> program_decides(X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   679
\  (! X. algorithm(X) & program_decides(X) --> algorithm_program_decides(X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   680
\  (! Y X. program_halts2(X::'a,Y) --> program(X)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   681
\  (! X Y. program_halts2(X::'a,Y) --> halts2(X::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   682
\  (! X Y. program(X) & halts2(X::'a,Y) --> program_halts2(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   683
\  (! W X Y Z. halts3_outputs(X::'a,Y,Z,W) --> halts3(X::'a,Y,Z)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   684
\  (! Y Z X W. halts3_outputs(X::'a,Y,Z,W) --> outputs(X::'a,W)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   685
\  (! Y Z X W. halts3(X::'a,Y,Z) & outputs(X::'a,W) --> halts3_outputs(X::'a,Y,Z,W)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   686
\  (! Y X. program_not_halts2(X::'a,Y) --> program(X)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   687
\  (! X Y. ~(program_not_halts2(X::'a,Y) & halts2(X::'a,Y))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   688
\  (! X Y. program(X) --> program_not_halts2(X::'a,Y) | halts2(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   689
\  (! W X Y. halts2_outputs(X::'a,Y,W) --> halts2(X::'a,Y)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   690
\  (! Y X W. halts2_outputs(X::'a,Y,W) --> outputs(X::'a,W)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   691
\  (! Y X W. halts2(X::'a,Y) & outputs(X::'a,W) --> halts2_outputs(X::'a,Y,W)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   692
\  (! X W Y Z. program_halts2_halts3_outputs(X::'a,Y,Z,W) --> program_halts2(Y::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   693
\  (! X Y Z W. program_halts2_halts3_outputs(X::'a,Y,Z,W) --> halts3_outputs(X::'a,Y,Z,W)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   694
\  (! X Y Z W. program_halts2(Y::'a,Z) & halts3_outputs(X::'a,Y,Z,W) --> program_halts2_halts3_outputs(X::'a,Y,Z,W)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   695
\  (! X W Y Z. program_not_halts2_halts3_outputs(X::'a,Y,Z,W) --> program_not_halts2(Y::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   696
\  (! X Y Z W. program_not_halts2_halts3_outputs(X::'a,Y,Z,W) --> halts3_outputs(X::'a,Y,Z,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   697
\  (! X Y Z W. program_not_halts2(Y::'a,Z) & halts3_outputs(X::'a,Y,Z,W) --> program_not_halts2_halts3_outputs(X::'a,Y,Z,W)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   698
\  (! X W Y. program_halts2_halts2_outputs(X::'a,Y,W) --> program_halts2(Y::'a,Y)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   699
\  (! X Y W. program_halts2_halts2_outputs(X::'a,Y,W) --> halts2_outputs(X::'a,Y,W)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   700
\  (! X Y W. program_halts2(Y::'a,Y) & halts2_outputs(X::'a,Y,W) --> program_halts2_halts2_outputs(X::'a,Y,W)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   701
\  (! X W Y. program_not_halts2_halts2_outputs(X::'a,Y,W) --> program_not_halts2(Y::'a,Y)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   702
\  (! X Y W. program_not_halts2_halts2_outputs(X::'a,Y,W) --> halts2_outputs(X::'a,Y,W)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   703
\  (! X Y W. program_not_halts2(Y::'a,Y) & halts2_outputs(X::'a,Y,W) --> program_not_halts2_halts2_outputs(X::'a,Y,W)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   704
\  (! X. algorithm_program_decides(X) --> program_program_decides(c1)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   705
\  (! W Y Z. program_program_decides(W) --> program_halts2_halts3_outputs(W::'a,Y,Z,good)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   706
\  (! W Y Z. program_program_decides(W) --> program_not_halts2_halts3_outputs(W::'a,Y,Z,bad)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   707
\  (! W. program(W) & program_halts2_halts3_outputs(W::'a,f3(W),f3(W),good) & program_not_halts2_halts3_outputs(W::'a,f3(W),f3(W),bad) --> program(c2)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   708
\  (! W Y. program(W) & program_halts2_halts3_outputs(W::'a,f3(W),f3(W),good) & program_not_halts2_halts3_outputs(W::'a,f3(W),f3(W),bad) --> program_halts2_halts2_outputs(c2::'a,Y,good)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   709
\  (! W Y. program(W) & program_halts2_halts3_outputs(W::'a,f3(W),f3(W),good) & program_not_halts2_halts3_outputs(W::'a,f3(W),f3(W),bad) --> program_not_halts2_halts2_outputs(c2::'a,Y,bad)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   710
\  (! V. program(V) & program_halts2_halts2_outputs(V::'a,f4(V),good) & program_not_halts2_halts2_outputs(V::'a,f4(V),bad) --> program(c3)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   711
\  (! V Y. program(V) & program_halts2_halts2_outputs(V::'a,f4(V),good) & program_not_halts2_halts2_outputs(V::'a,f4(V),bad) & program_halts2(Y::'a,Y) --> halts2(c3::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   712
\  (! V Y. program(V) & program_halts2_halts2_outputs(V::'a,f4(V),good) & program_not_halts2_halts2_outputs(V::'a,f4(V),bad) --> program_not_halts2_halts2_outputs(c3::'a,Y,bad)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   713
\  (algorithm_program_decides(c4)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   714
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   715
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   716
(****************SLOW
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   717
2100398 inferences so far.  Searching to depth 12.  No proof after 30 mins.
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   718
val COM004_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   719
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   720
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   721
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   722
\  (! C D P Q X Y. failure_node(X::'a,or(C::'a,P)) & failure_node(Y::'a,or(D::'a,Q)) & contradictory(P::'a,Q) & siblings(X::'a,Y) --> failure_node(parent_of(X::'a,Y),or(C::'a,D))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   723
\  (! X. contradictory(negate(X),X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   724
\  (! X. contradictory(X::'a,negate(X))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   725
\  (! X. siblings(left_child_of(X),right_child_of(X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   726
\  (! D E. equal(D::'a,E) --> equal(left_child_of(D),left_child_of(E))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   727
\  (! F' G. equal(F'::'a,G) --> equal(negate(F'),negate(G))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   728
\  (! H I' J. equal(H::'a,I') --> equal(or(H::'a,J),or(I'::'a,J))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   729
\  (! K' M L. equal(K'::'a,L) --> equal(or(M::'a,K'),or(M::'a,L))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   730
\  (! N O_ P. equal(N::'a,O_) --> equal(parent_of(N::'a,P),parent_of(O_::'a,P))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   731
\  (! Q S' R. equal(Q::'a,R) --> equal(parent_of(S'::'a,Q),parent_of(S'::'a,R))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   732
\  (! T' U. equal(T'::'a,U) --> equal(right_child_of(T'),right_child_of(U))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   733
\  (! V W X. equal(V::'a,W) & contradictory(V::'a,X) --> contradictory(W::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   734
\  (! Y A1 Z. equal(Y::'a,Z) & contradictory(A1::'a,Y) --> contradictory(A1::'a,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   735
\  (! B1 C1 D1. equal(B1::'a,C1) & failure_node(B1::'a,D1) --> failure_node(C1::'a,D1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   736
\  (! E1 G1 F1. equal(E1::'a,F1) & failure_node(G1::'a,E1) --> failure_node(G1::'a,F1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   737
\  (! H1 I1 J1. equal(H1::'a,I1) & siblings(H1::'a,J1) --> siblings(I1::'a,J1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   738
\  (! K1 M1 L1. equal(K1::'a,L1) & siblings(M1::'a,K1) --> siblings(M1::'a,L1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   739
\  (failure_node(n_left::'a,or(empty::'a,atom))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   740
\  (failure_node(n_right::'a,or(empty::'a,negate(atom)))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   741
\  (equal(n_left::'a,left_child_of(n))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   742
\  (equal(n_right::'a,right_child_of(n))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   743
\  (! Z. ~failure_node(Z::'a,or(empty::'a,empty))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   744
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   745
****************)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   746
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   747
(*179 inferences so far.  Searching to depth 7.  3.9 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   748
val GEO003_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   749
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   750
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   751
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   752
\  (! X Y. between(X::'a,Y,X) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   753
\  (! V X Y Z. between(X::'a,Y,V) & between(Y::'a,Z,V) --> between(X::'a,Y,Z)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   754
\  (! Y X V Z. between(X::'a,Y,Z) & between(X::'a,Y,V) --> equal(X::'a,Y) | between(X::'a,Z,V) | between(X::'a,V,Z)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   755
\  (! Y X. equidistant(X::'a,Y,Y,X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   756
\  (! Z X Y. equidistant(X::'a,Y,Z,Z) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   757
\  (! X Y Z V V2 W. equidistant(X::'a,Y,Z,V) & equidistant(X::'a,Y,V2,W) --> equidistant(Z::'a,V,V2,W)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   758
\  (! W X Z V Y. between(X::'a,W,V) & between(Y::'a,V,Z) --> between(X::'a,outer_pasch(W::'a,X,Y,Z,V),Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   759
\  (! W X Y Z V. between(X::'a,W,V) & between(Y::'a,V,Z) --> between(Z::'a,W,outer_pasch(W::'a,X,Y,Z,V))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   760
\  (! W X Y Z V. between(X::'a,V,W) & between(Y::'a,V,Z) --> equal(X::'a,V) | between(X::'a,Z,euclid1(W::'a,X,Y,Z,V))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   761
\  (! W X Y Z V. between(X::'a,V,W) & between(Y::'a,V,Z) --> equal(X::'a,V) | between(X::'a,Y,euclid2(W::'a,X,Y,Z,V))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   762
\  (! W X Y Z V. between(X::'a,V,W) & between(Y::'a,V,Z) --> equal(X::'a,V) | between(euclid1(W::'a,X,Y,Z,V),W,euclid2(W::'a,X,Y,Z,V))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   763
\  (! X1 Y1 X Y Z V Z1 V1. equidistant(X::'a,Y,X1,Y1) & equidistant(Y::'a,Z,Y1,Z1) & equidistant(X::'a,V,X1,V1) & equidistant(Y::'a,V,Y1,V1) & between(X::'a,Y,Z) & between(X1::'a,Y1,Z1) --> equal(X::'a,Y) | equidistant(Z::'a,V,Z1,V1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   764
\  (! X Y W V. between(X::'a,Y,extension(X::'a,Y,W,V))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   765
\  (! X Y W V. equidistant(Y::'a,extension(X::'a,Y,W,V),W,V)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   766
\  (~between(lower_dimension_point_1::'a,lower_dimension_point_2,lower_dimension_point_3)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   767
\  (~between(lower_dimension_point_2::'a,lower_dimension_point_3,lower_dimension_point_1)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   768
\  (~between(lower_dimension_point_3::'a,lower_dimension_point_1,lower_dimension_point_2)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   769
\  (! Z X Y W V. equidistant(X::'a,W,X,V) & equidistant(Y::'a,W,Y,V) & equidistant(Z::'a,W,Z,V) --> between(X::'a,Y,Z) | between(Y::'a,Z,X) | between(Z::'a,X,Y) | equal(W::'a,V)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   770
\  (! X Y Z X1 Z1 V. equidistant(V::'a,X,V,X1) & equidistant(V::'a,Z,V,Z1) & between(V::'a,X,Z) & between(X::'a,Y,Z) --> equidistant(V::'a,Y,Z,continuous(X::'a,Y,Z,X1,Z1,V))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   771
\  (! X Y Z X1 V Z1. equidistant(V::'a,X,V,X1) & equidistant(V::'a,Z,V,Z1) & between(V::'a,X,Z) & between(X::'a,Y,Z) --> between(X1::'a,continuous(X::'a,Y,Z,X1,Z1,V),Z1)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   772
\  (! X Y W Z. equal(X::'a,Y) & between(X::'a,W,Z) --> between(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   773
\  (! X W Y Z. equal(X::'a,Y) & between(W::'a,X,Z) --> between(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   774
\  (! X W Z Y. equal(X::'a,Y) & between(W::'a,Z,X) --> between(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   775
\  (! X Y V W Z. equal(X::'a,Y) & equidistant(X::'a,V,W,Z) --> equidistant(Y::'a,V,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   776
\  (! X V Y W Z. equal(X::'a,Y) & equidistant(V::'a,X,W,Z) --> equidistant(V::'a,Y,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   777
\  (! X V W Y Z. equal(X::'a,Y) & equidistant(V::'a,W,X,Z) --> equidistant(V::'a,W,Y,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   778
\  (! X V W Z Y. equal(X::'a,Y) & equidistant(V::'a,W,Z,X) --> equidistant(V::'a,W,Z,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   779
\  (! X Y V1 V2 V3 V4. equal(X::'a,Y) --> equal(outer_pasch(X::'a,V1,V2,V3,V4),outer_pasch(Y::'a,V1,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   780
\  (! X V1 Y V2 V3 V4. equal(X::'a,Y) --> equal(outer_pasch(V1::'a,X,V2,V3,V4),outer_pasch(V1::'a,Y,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   781
\  (! X V1 V2 Y V3 V4. equal(X::'a,Y) --> equal(outer_pasch(V1::'a,V2,X,V3,V4),outer_pasch(V1::'a,V2,Y,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   782
\  (! X V1 V2 V3 Y V4. equal(X::'a,Y) --> equal(outer_pasch(V1::'a,V2,V3,X,V4),outer_pasch(V1::'a,V2,V3,Y,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   783
\  (! X V1 V2 V3 V4 Y. equal(X::'a,Y) --> equal(outer_pasch(V1::'a,V2,V3,V4,X),outer_pasch(V1::'a,V2,V3,V4,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   784
\  (! A B C D E F'. equal(A::'a,B) --> equal(euclid1(A::'a,C,D,E,F'),euclid1(B::'a,C,D,E,F'))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   785
\  (! G I' H J K' L. equal(G::'a,H) --> equal(euclid1(I'::'a,G,J,K',L),euclid1(I'::'a,H,J,K',L))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   786
\  (! M O_ P N Q R. equal(M::'a,N) --> equal(euclid1(O_::'a,P,M,Q,R),euclid1(O_::'a,P,N,Q,R))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   787
\  (! S' U V W T' X. equal(S'::'a,T') --> equal(euclid1(U::'a,V,W,S',X),euclid1(U::'a,V,W,T',X))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   788
\  (! Y A1 B1 C1 D1 Z. equal(Y::'a,Z) --> equal(euclid1(A1::'a,B1,C1,D1,Y),euclid1(A1::'a,B1,C1,D1,Z))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   789
\  (! E1 F1 G1 H1 I1 J1. equal(E1::'a,F1) --> equal(euclid2(E1::'a,G1,H1,I1,J1),euclid2(F1::'a,G1,H1,I1,J1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   790
\  (! K1 M1 L1 N1 O1 P1. equal(K1::'a,L1) --> equal(euclid2(M1::'a,K1,N1,O1,P1),euclid2(M1::'a,L1,N1,O1,P1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   791
\  (! Q1 S1 T1 R1 U1 V1. equal(Q1::'a,R1) --> equal(euclid2(S1::'a,T1,Q1,U1,V1),euclid2(S1::'a,T1,R1,U1,V1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   792
\  (! W1 Y1 Z1 A2 X1 B2. equal(W1::'a,X1) --> equal(euclid2(Y1::'a,Z1,A2,W1,B2),euclid2(Y1::'a,Z1,A2,X1,B2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   793
\  (! C2 E2 F2 G2 H2 D2. equal(C2::'a,D2) --> equal(euclid2(E2::'a,F2,G2,H2,C2),euclid2(E2::'a,F2,G2,H2,D2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   794
\  (! X Y V1 V2 V3. equal(X::'a,Y) --> equal(extension(X::'a,V1,V2,V3),extension(Y::'a,V1,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   795
\  (! X V1 Y V2 V3. equal(X::'a,Y) --> equal(extension(V1::'a,X,V2,V3),extension(V1::'a,Y,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   796
\  (! X V1 V2 Y V3. equal(X::'a,Y) --> equal(extension(V1::'a,V2,X,V3),extension(V1::'a,V2,Y,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   797
\  (! X V1 V2 V3 Y. equal(X::'a,Y) --> equal(extension(V1::'a,V2,V3,X),extension(V1::'a,V2,V3,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   798
\  (! X Y V1 V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(X::'a,V1,V2,V3,V4,V5),continuous(Y::'a,V1,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   799
\  (! X V1 Y V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,X,V2,V3,V4,V5),continuous(V1::'a,Y,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   800
\  (! X V1 V2 Y V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,X,V3,V4,V5),continuous(V1::'a,V2,Y,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   801
\  (! X V1 V2 V3 Y V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,X,V4,V5),continuous(V1::'a,V2,V3,Y,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   802
\  (! X V1 V2 V3 V4 Y V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,X,V5),continuous(V1::'a,V2,V3,V4,Y,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   803
\  (! X V1 V2 V3 V4 V5 Y. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,V5,X),continuous(V1::'a,V2,V3,V4,V5,Y))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   804
\  (~between(a::'a,b,b)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   805
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   806
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   807
(*4272 inferences so far.  Searching to depth 10.  29.4 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   808
val GEO017_2 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   809
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   810
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   811
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   812
\  (! Y X. equidistant(X::'a,Y,Y,X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   813
\  (! X Y Z V V2 W. equidistant(X::'a,Y,Z,V) & equidistant(X::'a,Y,V2,W) --> equidistant(Z::'a,V,V2,W)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   814
\  (! Z X Y. equidistant(X::'a,Y,Z,Z) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   815
\  (! X Y W V. between(X::'a,Y,extension(X::'a,Y,W,V))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   816
\  (! X Y W V. equidistant(Y::'a,extension(X::'a,Y,W,V),W,V)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   817
\  (! X1 Y1 X Y Z V Z1 V1. equidistant(X::'a,Y,X1,Y1) & equidistant(Y::'a,Z,Y1,Z1) & equidistant(X::'a,V,X1,V1) & equidistant(Y::'a,V,Y1,V1) & between(X::'a,Y,Z) & between(X1::'a,Y1,Z1) --> equal(X::'a,Y) | equidistant(Z::'a,V,Z1,V1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   818
\  (! X Y. between(X::'a,Y,X) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   819
\  (! U V W X Y. between(U::'a,V,W) & between(Y::'a,X,W) --> between(V::'a,inner_pasch(U::'a,V,W,X,Y),Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   820
\  (! V W X Y U. between(U::'a,V,W) & between(Y::'a,X,W) --> between(X::'a,inner_pasch(U::'a,V,W,X,Y),U)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   821
\  (~between(lower_dimension_point_1::'a,lower_dimension_point_2,lower_dimension_point_3)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   822
\  (~between(lower_dimension_point_2::'a,lower_dimension_point_3,lower_dimension_point_1)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   823
\  (~between(lower_dimension_point_3::'a,lower_dimension_point_1,lower_dimension_point_2)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   824
\  (! Z X Y W V. equidistant(X::'a,W,X,V) & equidistant(Y::'a,W,Y,V) & equidistant(Z::'a,W,Z,V) --> between(X::'a,Y,Z) | between(Y::'a,Z,X) | between(Z::'a,X,Y) | equal(W::'a,V)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   825
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(U::'a,V,euclid1(U::'a,V,W,X,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   826
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(U::'a,X,euclid2(U::'a,V,W,X,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   827
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(euclid1(U::'a,V,W,X,Y),Y,euclid2(U::'a,V,W,X,Y))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   828
\  (! U V V1 W X X1. equidistant(U::'a,V,U,V1) & equidistant(U::'a,X,U,X1) & between(U::'a,V,X) & between(V::'a,W,X) --> between(V1::'a,continuous(U::'a,V,V1,W,X,X1),X1)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   829
\  (! U V V1 W X X1. equidistant(U::'a,V,U,V1) & equidistant(U::'a,X,U,X1) & between(U::'a,V,X) & between(V::'a,W,X) --> equidistant(U::'a,W,U,continuous(U::'a,V,V1,W,X,X1))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   830
\  (! X Y W Z. equal(X::'a,Y) & between(X::'a,W,Z) --> between(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   831
\  (! X W Y Z. equal(X::'a,Y) & between(W::'a,X,Z) --> between(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   832
\  (! X W Z Y. equal(X::'a,Y) & between(W::'a,Z,X) --> between(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   833
\  (! X Y V W Z. equal(X::'a,Y) & equidistant(X::'a,V,W,Z) --> equidistant(Y::'a,V,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   834
\  (! X V Y W Z. equal(X::'a,Y) & equidistant(V::'a,X,W,Z) --> equidistant(V::'a,Y,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   835
\  (! X V W Y Z. equal(X::'a,Y) & equidistant(V::'a,W,X,Z) --> equidistant(V::'a,W,Y,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   836
\  (! X V W Z Y. equal(X::'a,Y) & equidistant(V::'a,W,Z,X) --> equidistant(V::'a,W,Z,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   837
\  (! X Y V1 V2 V3 V4. equal(X::'a,Y) --> equal(inner_pasch(X::'a,V1,V2,V3,V4),inner_pasch(Y::'a,V1,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   838
\  (! X V1 Y V2 V3 V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,X,V2,V3,V4),inner_pasch(V1::'a,Y,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   839
\  (! X V1 V2 Y V3 V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,X,V3,V4),inner_pasch(V1::'a,V2,Y,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   840
\  (! X V1 V2 V3 Y V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,V3,X,V4),inner_pasch(V1::'a,V2,V3,Y,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   841
\  (! X V1 V2 V3 V4 Y. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,V3,V4,X),inner_pasch(V1::'a,V2,V3,V4,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   842
\  (! A B C D E F'. equal(A::'a,B) --> equal(euclid1(A::'a,C,D,E,F'),euclid1(B::'a,C,D,E,F'))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   843
\  (! G I' H J K' L. equal(G::'a,H) --> equal(euclid1(I'::'a,G,J,K',L),euclid1(I'::'a,H,J,K',L))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   844
\  (! M O_ P N Q R. equal(M::'a,N) --> equal(euclid1(O_::'a,P,M,Q,R),euclid1(O_::'a,P,N,Q,R))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   845
\  (! S' U V W T' X. equal(S'::'a,T') --> equal(euclid1(U::'a,V,W,S',X),euclid1(U::'a,V,W,T',X))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   846
\  (! Y A1 B1 C1 D1 Z. equal(Y::'a,Z) --> equal(euclid1(A1::'a,B1,C1,D1,Y),euclid1(A1::'a,B1,C1,D1,Z))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   847
\  (! E1 F1 G1 H1 I1 J1. equal(E1::'a,F1) --> equal(euclid2(E1::'a,G1,H1,I1,J1),euclid2(F1::'a,G1,H1,I1,J1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   848
\  (! K1 M1 L1 N1 O1 P1. equal(K1::'a,L1) --> equal(euclid2(M1::'a,K1,N1,O1,P1),euclid2(M1::'a,L1,N1,O1,P1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   849
\  (! Q1 S1 T1 R1 U1 V1. equal(Q1::'a,R1) --> equal(euclid2(S1::'a,T1,Q1,U1,V1),euclid2(S1::'a,T1,R1,U1,V1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   850
\  (! W1 Y1 Z1 A2 X1 B2. equal(W1::'a,X1) --> equal(euclid2(Y1::'a,Z1,A2,W1,B2),euclid2(Y1::'a,Z1,A2,X1,B2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   851
\  (! C2 E2 F2 G2 H2 D2. equal(C2::'a,D2) --> equal(euclid2(E2::'a,F2,G2,H2,C2),euclid2(E2::'a,F2,G2,H2,D2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   852
\  (! X Y V1 V2 V3. equal(X::'a,Y) --> equal(extension(X::'a,V1,V2,V3),extension(Y::'a,V1,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   853
\  (! X V1 Y V2 V3. equal(X::'a,Y) --> equal(extension(V1::'a,X,V2,V3),extension(V1::'a,Y,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   854
\  (! X V1 V2 Y V3. equal(X::'a,Y) --> equal(extension(V1::'a,V2,X,V3),extension(V1::'a,V2,Y,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   855
\  (! X V1 V2 V3 Y. equal(X::'a,Y) --> equal(extension(V1::'a,V2,V3,X),extension(V1::'a,V2,V3,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   856
\  (! X Y V1 V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(X::'a,V1,V2,V3,V4,V5),continuous(Y::'a,V1,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   857
\  (! X V1 Y V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,X,V2,V3,V4,V5),continuous(V1::'a,Y,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   858
\  (! X V1 V2 Y V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,X,V3,V4,V5),continuous(V1::'a,V2,Y,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   859
\  (! X V1 V2 V3 Y V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,X,V4,V5),continuous(V1::'a,V2,V3,Y,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   860
\  (! X V1 V2 V3 V4 Y V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,X,V5),continuous(V1::'a,V2,V3,V4,Y,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   861
\  (! X V1 V2 V3 V4 V5 Y. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,V5,X),continuous(V1::'a,V2,V3,V4,V5,Y))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   862
\  (equidistant(u::'a,v,w,x)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   863
\  (~equidistant(u::'a,v,x,w)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   864
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   865
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   866
(****************SLOW
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   867
382903 inferences so far.  Searching to depth 9.  No proof after 35 minutes.
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   868
val GEO027_3 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   869
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   870
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   871
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   872
\  (! Y X. equidistant(X::'a,Y,Y,X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   873
\  (! X Y Z V V2 W. equidistant(X::'a,Y,Z,V) & equidistant(X::'a,Y,V2,W) --> equidistant(Z::'a,V,V2,W)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   874
\  (! Z X Y. equidistant(X::'a,Y,Z,Z) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   875
\  (! X Y W V. between(X::'a,Y,extension(X::'a,Y,W,V))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   876
\  (! X Y W V. equidistant(Y::'a,extension(X::'a,Y,W,V),W,V)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   877
\  (! X1 Y1 X Y Z V Z1 V1. equidistant(X::'a,Y,X1,Y1) & equidistant(Y::'a,Z,Y1,Z1) & equidistant(X::'a,V,X1,V1) & equidistant(Y::'a,V,Y1,V1) & between(X::'a,Y,Z) & between(X1::'a,Y1,Z1) --> equal(X::'a,Y) | equidistant(Z::'a,V,Z1,V1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   878
\  (! X Y. between(X::'a,Y,X) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   879
\  (! U V W X Y. between(U::'a,V,W) & between(Y::'a,X,W) --> between(V::'a,inner_pasch(U::'a,V,W,X,Y),Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   880
\  (! V W X Y U. between(U::'a,V,W) & between(Y::'a,X,W) --> between(X::'a,inner_pasch(U::'a,V,W,X,Y),U)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   881
\  (~between(lower_dimension_point_1::'a,lower_dimension_point_2,lower_dimension_point_3)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   882
\  (~between(lower_dimension_point_2::'a,lower_dimension_point_3,lower_dimension_point_1)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   883
\  (~between(lower_dimension_point_3::'a,lower_dimension_point_1,lower_dimension_point_2)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   884
\  (! Z X Y W V. equidistant(X::'a,W,X,V) & equidistant(Y::'a,W,Y,V) & equidistant(Z::'a,W,Z,V) --> between(X::'a,Y,Z) | between(Y::'a,Z,X) | between(Z::'a,X,Y) | equal(W::'a,V)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   885
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(U::'a,V,euclid1(U::'a,V,W,X,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   886
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(U::'a,X,euclid2(U::'a,V,W,X,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   887
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(euclid1(U::'a,V,W,X,Y),Y,euclid2(U::'a,V,W,X,Y))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   888
\  (! U V V1 W X X1. equidistant(U::'a,V,U,V1) & equidistant(U::'a,X,U,X1) & between(U::'a,V,X) & between(V::'a,W,X) --> between(V1::'a,continuous(U::'a,V,V1,W,X,X1),X1)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   889
\  (! U V V1 W X X1. equidistant(U::'a,V,U,V1) & equidistant(U::'a,X,U,X1) & between(U::'a,V,X) & between(V::'a,W,X) --> equidistant(U::'a,W,U,continuous(U::'a,V,V1,W,X,X1))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   890
\  (! X Y W Z. equal(X::'a,Y) & between(X::'a,W,Z) --> between(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   891
\  (! X W Y Z. equal(X::'a,Y) & between(W::'a,X,Z) --> between(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   892
\  (! X W Z Y. equal(X::'a,Y) & between(W::'a,Z,X) --> between(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   893
\  (! X Y V W Z. equal(X::'a,Y) & equidistant(X::'a,V,W,Z) --> equidistant(Y::'a,V,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   894
\  (! X V Y W Z. equal(X::'a,Y) & equidistant(V::'a,X,W,Z) --> equidistant(V::'a,Y,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   895
\  (! X V W Y Z. equal(X::'a,Y) & equidistant(V::'a,W,X,Z) --> equidistant(V::'a,W,Y,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   896
\  (! X V W Z Y. equal(X::'a,Y) & equidistant(V::'a,W,Z,X) --> equidistant(V::'a,W,Z,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   897
\  (! X Y V1 V2 V3 V4. equal(X::'a,Y) --> equal(inner_pasch(X::'a,V1,V2,V3,V4),inner_pasch(Y::'a,V1,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   898
\  (! X V1 Y V2 V3 V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,X,V2,V3,V4),inner_pasch(V1::'a,Y,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   899
\  (! X V1 V2 Y V3 V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,X,V3,V4),inner_pasch(V1::'a,V2,Y,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   900
\  (! X V1 V2 V3 Y V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,V3,X,V4),inner_pasch(V1::'a,V2,V3,Y,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   901
\  (! X V1 V2 V3 V4 Y. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,V3,V4,X),inner_pasch(V1::'a,V2,V3,V4,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   902
\  (! A B C D E F'. equal(A::'a,B) --> equal(euclid1(A::'a,C,D,E,F'),euclid1(B::'a,C,D,E,F'))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   903
\  (! G I' H J K' L. equal(G::'a,H) --> equal(euclid1(I'::'a,G,J,K',L),euclid1(I'::'a,H,J,K',L))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   904
\  (! M O_ P N Q R. equal(M::'a,N) --> equal(euclid1(O_::'a,P,M,Q,R),euclid1(O_::'a,P,N,Q,R))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   905
\  (! S' U V W T' X. equal(S'::'a,T') --> equal(euclid1(U::'a,V,W,S',X),euclid1(U::'a,V,W,T',X))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   906
\  (! Y A1 B1 C1 D1 Z. equal(Y::'a,Z) --> equal(euclid1(A1::'a,B1,C1,D1,Y),euclid1(A1::'a,B1,C1,D1,Z))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   907
\  (! E1 F1 G1 H1 I1 J1. equal(E1::'a,F1) --> equal(euclid2(E1::'a,G1,H1,I1,J1),euclid2(F1::'a,G1,H1,I1,J1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   908
\  (! K1 M1 L1 N1 O1 P1. equal(K1::'a,L1) --> equal(euclid2(M1::'a,K1,N1,O1,P1),euclid2(M1::'a,L1,N1,O1,P1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   909
\  (! Q1 S1 T1 R1 U1 V1. equal(Q1::'a,R1) --> equal(euclid2(S1::'a,T1,Q1,U1,V1),euclid2(S1::'a,T1,R1,U1,V1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   910
\  (! W1 Y1 Z1 A2 X1 B2. equal(W1::'a,X1) --> equal(euclid2(Y1::'a,Z1,A2,W1,B2),euclid2(Y1::'a,Z1,A2,X1,B2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   911
\  (! C2 E2 F2 G2 H2 D2. equal(C2::'a,D2) --> equal(euclid2(E2::'a,F2,G2,H2,C2),euclid2(E2::'a,F2,G2,H2,D2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   912
\  (! X Y V1 V2 V3. equal(X::'a,Y) --> equal(extension(X::'a,V1,V2,V3),extension(Y::'a,V1,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   913
\  (! X V1 Y V2 V3. equal(X::'a,Y) --> equal(extension(V1::'a,X,V2,V3),extension(V1::'a,Y,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   914
\  (! X V1 V2 Y V3. equal(X::'a,Y) --> equal(extension(V1::'a,V2,X,V3),extension(V1::'a,V2,Y,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   915
\  (! X V1 V2 V3 Y. equal(X::'a,Y) --> equal(extension(V1::'a,V2,V3,X),extension(V1::'a,V2,V3,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   916
\  (! X Y V1 V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(X::'a,V1,V2,V3,V4,V5),continuous(Y::'a,V1,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   917
\  (! X V1 Y V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,X,V2,V3,V4,V5),continuous(V1::'a,Y,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   918
\  (! X V1 V2 Y V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,X,V3,V4,V5),continuous(V1::'a,V2,Y,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   919
\  (! X V1 V2 V3 Y V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,X,V4,V5),continuous(V1::'a,V2,V3,Y,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   920
\  (! X V1 V2 V3 V4 Y V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,X,V5),continuous(V1::'a,V2,V3,V4,Y,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   921
\  (! X V1 V2 V3 V4 V5 Y. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,V5,X),continuous(V1::'a,V2,V3,V4,V5,Y))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   922
\  (! U V. equal(reflection(U::'a,V),extension(U::'a,V,U,V))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   923
\  (! X Y Z. equal(X::'a,Y) --> equal(reflection(X::'a,Z),reflection(Y::'a,Z))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   924
\  (! A1 C1 B1. equal(A1::'a,B1) --> equal(reflection(C1::'a,A1),reflection(C1::'a,B1))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   925
\  (! U V. equidistant(U::'a,V,U,V)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   926
\  (! W X U V. equidistant(U::'a,V,W,X) --> equidistant(W::'a,X,U,V)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   927
\  (! V U W X. equidistant(U::'a,V,W,X) --> equidistant(V::'a,U,W,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   928
\  (! U V X W. equidistant(U::'a,V,W,X) --> equidistant(U::'a,V,X,W)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   929
\  (! V U X W. equidistant(U::'a,V,W,X) --> equidistant(V::'a,U,X,W)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   930
\  (! W X V U. equidistant(U::'a,V,W,X) --> equidistant(W::'a,X,V,U)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   931
\  (! X W U V. equidistant(U::'a,V,W,X) --> equidistant(X::'a,W,U,V)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   932
\  (! X W V U. equidistant(U::'a,V,W,X) --> equidistant(X::'a,W,V,U)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   933
\  (! W X U V Y Z. equidistant(U::'a,V,W,X) & equidistant(W::'a,X,Y,Z) --> equidistant(U::'a,V,Y,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   934
\  (! U V W. equal(V::'a,extension(U::'a,V,W,W))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   935
\  (! W X U V Y. equal(Y::'a,extension(U::'a,V,W,X)) --> between(U::'a,V,Y)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   936
\  (! U V. between(U::'a,V,reflection(U::'a,V))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   937
\  (! U V. equidistant(V::'a,reflection(U::'a,V),U,V)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   938
\  (! U V. equal(U::'a,V) --> equal(V::'a,reflection(U::'a,V))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   939
\  (! U. equal(U::'a,reflection(U::'a,U))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   940
\  (! U V. equal(V::'a,reflection(U::'a,V)) --> equal(U::'a,V)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   941
\  (! U V. equidistant(U::'a,U,V,V)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   942
\  (! V V1 U W U1 W1. equidistant(U::'a,V,U1,V1) & equidistant(V::'a,W,V1,W1) & between(U::'a,V,W) & between(U1::'a,V1,W1) --> equidistant(U::'a,W,U1,W1)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   943
\  (! U V W X. between(U::'a,V,W) & between(U::'a,V,X) & equidistant(V::'a,W,V,X) --> equal(U::'a,V) | equal(W::'a,X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   944
\  (between(u::'a,v,w)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   945
\  (~equal(u::'a,v)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   946
\  (~equal(w::'a,extension(u::'a,v,v,w))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
   947
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   948
****************)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   949
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   950
(*313884 inferences so far.  Searching to depth 10.  887 secs: 15 mins.*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   951
val GEO058_2 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   952
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   953
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   954
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   955
\  (! Y X. equidistant(X::'a,Y,Y,X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   956
\  (! X Y Z V V2 W. equidistant(X::'a,Y,Z,V) & equidistant(X::'a,Y,V2,W) --> equidistant(Z::'a,V,V2,W)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   957
\  (! Z X Y. equidistant(X::'a,Y,Z,Z) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   958
\  (! X Y W V. between(X::'a,Y,extension(X::'a,Y,W,V))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   959
\  (! X Y W V. equidistant(Y::'a,extension(X::'a,Y,W,V),W,V)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   960
\  (! X1 Y1 X Y Z V Z1 V1. equidistant(X::'a,Y,X1,Y1) & equidistant(Y::'a,Z,Y1,Z1) & equidistant(X::'a,V,X1,V1) & equidistant(Y::'a,V,Y1,V1) & between(X::'a,Y,Z) & between(X1::'a,Y1,Z1) --> equal(X::'a,Y) | equidistant(Z::'a,V,Z1,V1)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   961
\  (! X Y. between(X::'a,Y,X) --> equal(X::'a,Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   962
\  (! U V W X Y. between(U::'a,V,W) & between(Y::'a,X,W) --> between(V::'a,inner_pasch(U::'a,V,W,X,Y),Y)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   963
\  (! V W X Y U. between(U::'a,V,W) & between(Y::'a,X,W) --> between(X::'a,inner_pasch(U::'a,V,W,X,Y),U)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   964
\  (~between(lower_dimension_point_1::'a,lower_dimension_point_2,lower_dimension_point_3)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   965
\  (~between(lower_dimension_point_2::'a,lower_dimension_point_3,lower_dimension_point_1)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   966
\  (~between(lower_dimension_point_3::'a,lower_dimension_point_1,lower_dimension_point_2)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   967
\  (! Z X Y W V. equidistant(X::'a,W,X,V) & equidistant(Y::'a,W,Y,V) & equidistant(Z::'a,W,Z,V) --> between(X::'a,Y,Z) | between(Y::'a,Z,X) | between(Z::'a,X,Y) | equal(W::'a,V)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   968
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(U::'a,V,euclid1(U::'a,V,W,X,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   969
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(U::'a,X,euclid2(U::'a,V,W,X,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   970
\  (! U V W X Y. between(U::'a,W,Y) & between(V::'a,W,X) --> equal(U::'a,W) | between(euclid1(U::'a,V,W,X,Y),Y,euclid2(U::'a,V,W,X,Y))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   971
\  (! U V V1 W X X1. equidistant(U::'a,V,U,V1) & equidistant(U::'a,X,U,X1) & between(U::'a,V,X) & between(V::'a,W,X) --> between(V1::'a,continuous(U::'a,V,V1,W,X,X1),X1)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   972
\  (! U V V1 W X X1. equidistant(U::'a,V,U,V1) & equidistant(U::'a,X,U,X1) & between(U::'a,V,X) & between(V::'a,W,X) --> equidistant(U::'a,W,U,continuous(U::'a,V,V1,W,X,X1))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   973
\  (! X Y W Z. equal(X::'a,Y) & between(X::'a,W,Z) --> between(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   974
\  (! X W Y Z. equal(X::'a,Y) & between(W::'a,X,Z) --> between(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   975
\  (! X W Z Y. equal(X::'a,Y) & between(W::'a,Z,X) --> between(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   976
\  (! X Y V W Z. equal(X::'a,Y) & equidistant(X::'a,V,W,Z) --> equidistant(Y::'a,V,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   977
\  (! X V Y W Z. equal(X::'a,Y) & equidistant(V::'a,X,W,Z) --> equidistant(V::'a,Y,W,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   978
\  (! X V W Y Z. equal(X::'a,Y) & equidistant(V::'a,W,X,Z) --> equidistant(V::'a,W,Y,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   979
\  (! X V W Z Y. equal(X::'a,Y) & equidistant(V::'a,W,Z,X) --> equidistant(V::'a,W,Z,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   980
\  (! X Y V1 V2 V3 V4. equal(X::'a,Y) --> equal(inner_pasch(X::'a,V1,V2,V3,V4),inner_pasch(Y::'a,V1,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   981
\  (! X V1 Y V2 V3 V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,X,V2,V3,V4),inner_pasch(V1::'a,Y,V2,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   982
\  (! X V1 V2 Y V3 V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,X,V3,V4),inner_pasch(V1::'a,V2,Y,V3,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   983
\  (! X V1 V2 V3 Y V4. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,V3,X,V4),inner_pasch(V1::'a,V2,V3,Y,V4))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   984
\  (! X V1 V2 V3 V4 Y. equal(X::'a,Y) --> equal(inner_pasch(V1::'a,V2,V3,V4,X),inner_pasch(V1::'a,V2,V3,V4,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   985
\  (! A B C D E F'. equal(A::'a,B) --> equal(euclid1(A::'a,C,D,E,F'),euclid1(B::'a,C,D,E,F'))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   986
\  (! G I' H J K' L. equal(G::'a,H) --> equal(euclid1(I'::'a,G,J,K',L),euclid1(I'::'a,H,J,K',L))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   987
\  (! M O_ P N Q R. equal(M::'a,N) --> equal(euclid1(O_::'a,P,M,Q,R),euclid1(O_::'a,P,N,Q,R))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   988
\  (! S' U V W T' X. equal(S'::'a,T') --> equal(euclid1(U::'a,V,W,S',X),euclid1(U::'a,V,W,T',X))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   989
\  (! Y A1 B1 C1 D1 Z. equal(Y::'a,Z) --> equal(euclid1(A1::'a,B1,C1,D1,Y),euclid1(A1::'a,B1,C1,D1,Z))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   990
\  (! E1 F1 G1 H1 I1 J1. equal(E1::'a,F1) --> equal(euclid2(E1::'a,G1,H1,I1,J1),euclid2(F1::'a,G1,H1,I1,J1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   991
\  (! K1 M1 L1 N1 O1 P1. equal(K1::'a,L1) --> equal(euclid2(M1::'a,K1,N1,O1,P1),euclid2(M1::'a,L1,N1,O1,P1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   992
\  (! Q1 S1 T1 R1 U1 V1. equal(Q1::'a,R1) --> equal(euclid2(S1::'a,T1,Q1,U1,V1),euclid2(S1::'a,T1,R1,U1,V1))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   993
\  (! W1 Y1 Z1 A2 X1 B2. equal(W1::'a,X1) --> equal(euclid2(Y1::'a,Z1,A2,W1,B2),euclid2(Y1::'a,Z1,A2,X1,B2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   994
\  (! C2 E2 F2 G2 H2 D2. equal(C2::'a,D2) --> equal(euclid2(E2::'a,F2,G2,H2,C2),euclid2(E2::'a,F2,G2,H2,D2))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   995
\  (! X Y V1 V2 V3. equal(X::'a,Y) --> equal(extension(X::'a,V1,V2,V3),extension(Y::'a,V1,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   996
\  (! X V1 Y V2 V3. equal(X::'a,Y) --> equal(extension(V1::'a,X,V2,V3),extension(V1::'a,Y,V2,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   997
\  (! X V1 V2 Y V3. equal(X::'a,Y) --> equal(extension(V1::'a,V2,X,V3),extension(V1::'a,V2,Y,V3))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   998
\  (! X V1 V2 V3 Y. equal(X::'a,Y) --> equal(extension(V1::'a,V2,V3,X),extension(V1::'a,V2,V3,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
   999
\  (! X Y V1 V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(X::'a,V1,V2,V3,V4,V5),continuous(Y::'a,V1,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1000
\  (! X V1 Y V2 V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,X,V2,V3,V4,V5),continuous(V1::'a,Y,V2,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1001
\  (! X V1 V2 Y V3 V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,X,V3,V4,V5),continuous(V1::'a,V2,Y,V3,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1002
\  (! X V1 V2 V3 Y V4 V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,X,V4,V5),continuous(V1::'a,V2,V3,Y,V4,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1003
\  (! X V1 V2 V3 V4 Y V5. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,X,V5),continuous(V1::'a,V2,V3,V4,Y,V5))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1004
\  (! X V1 V2 V3 V4 V5 Y. equal(X::'a,Y) --> equal(continuous(V1::'a,V2,V3,V4,V5,X),continuous(V1::'a,V2,V3,V4,V5,Y))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1005
\  (! U V. equal(reflection(U::'a,V),extension(U::'a,V,U,V))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1006
\  (! X Y Z. equal(X::'a,Y) --> equal(reflection(X::'a,Z),reflection(Y::'a,Z))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1007
\  (! A1 C1 B1. equal(A1::'a,B1) --> equal(reflection(C1::'a,A1),reflection(C1::'a,B1))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1008
\  (equal(v::'a,reflection(u::'a,v))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1009
\  (~equal(u::'a,v)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1010
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1011
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1012
(*0 inferences so far.  Searching to depth 0.  0.2 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1013
val GEO079_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1014
 ("(! U V W X Y Z. right_angle(U::'a,V,W) & right_angle(X::'a,Y,Z) --> eq(U::'a,V,W,X,Y,Z)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1015
\  (! U V W X Y Z. congruent(U::'a,V,W,X,Y,Z) --> eq(U::'a,V,W,X,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1016
\  (! V W U X. trapezoid(U::'a,V,W,X) --> parallel(V::'a,W,U,X)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1017
\  (! U V X Y. parallel(U::'a,V,X,Y) --> eq(X::'a,V,U,V,X,Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1018
\  (trapezoid(a::'a,b,c,d)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1019
\  (~eq(a::'a,c,b,c,a,d)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1020
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1021
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1022
(****************SLOW
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1023
2032008 inferences so far.  Searching to depth 16.  No proof after 30 minutes.
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1024
val GRP001_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1025
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1026
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1027
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1028
\  (! X. product(identity::'a,X,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1029
\  (! X. product(X::'a,identity,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1030
\  (! X. product(inverse(X),X,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1031
\  (! X. product(X::'a,inverse(X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1032
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1033
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1034
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1035
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1036
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1037
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1038
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1039
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1040
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1041
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1042
\  (! X. product(X::'a,X,identity)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1043
\  (product(a::'a,b,c)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1044
\  (~product(b::'a,a,c)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1045
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1046
****************)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1047
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1048
(*2386 inferences so far.  Searching to depth 11.  8.7 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1049
val GRP008_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1050
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1051
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1052
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1053
\  (! X. product(identity::'a,X,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1054
\  (! X. product(X::'a,identity,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1055
\  (! X. product(inverse(X),X,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1056
\  (! X. product(X::'a,inverse(X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1057
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1058
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1059
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1060
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1061
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1062
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1063
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1064
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1065
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1066
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1067
\  (! A B. equal(A::'a,B) --> equal(h(A),h(B))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1068
\  (! C D. equal(C::'a,D) --> equal(j(C),j(D))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1069
\  (! A B. equal(A::'a,B) & q(A) --> q(B)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1070
\  (! B A C. q(A) & product(A::'a,B,C) --> product(B::'a,A,C)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1071
\  (! A. product(j(A),A,h(A)) | product(A::'a,j(A),h(A)) | q(A)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1072
\  (! A. product(j(A),A,h(A)) & product(A::'a,j(A),h(A)) --> q(A)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1073
\  (~q(identity)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1074
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1075
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1076
(*8625 inferences so far.  Searching to depth 11.  20 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1077
val GRP013_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1078
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1079
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1080
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1081
\  (! X. product(identity::'a,X,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1082
\  (! X. product(X::'a,identity,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1083
\  (! X. product(inverse(X),X,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1084
\  (! X. product(X::'a,inverse(X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1085
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1086
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1087
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1088
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1089
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1090
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1091
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1092
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1093
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1094
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1095
\  (! A. product(A::'a,A,identity)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1096
\  (product(a::'a,b,c)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1097
\  (product(inverse(a),inverse(b),d)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1098
\  (! A C B. product(inverse(A),inverse(B),C) --> product(A::'a,C,B)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1099
\  (~product(c::'a,d,identity)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1100
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1101
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1102
(*2448 inferences so far.  Searching to depth 10.  7.2 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1103
val GRP037_3 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1104
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1105
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1106
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1107
\  (! X. product(identity::'a,X,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1108
\  (! X. product(X::'a,identity,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1109
\  (! X. product(inverse(X),X,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1110
\  (! X. product(X::'a,inverse(X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1111
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1112
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1113
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1114
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1115
\  (! X Y. equal(X::'a,Y) --> equal(inverse(X),inverse(Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1116
\  (! X Y W. equal(X::'a,Y) --> equal(multiply(X::'a,W),multiply(Y::'a,W))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1117
\  (! X W Y. equal(X::'a,Y) --> equal(multiply(W::'a,X),multiply(W::'a,Y))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1118
\  (! X Y W Z. equal(X::'a,Y) & product(X::'a,W,Z) --> product(Y::'a,W,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1119
\  (! X W Y Z. equal(X::'a,Y) & product(W::'a,X,Z) --> product(W::'a,Y,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1120
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1121
\  (! A B C. subgroup_member(A) & subgroup_member(B) & product(A::'a,inverse(B),C) --> subgroup_member(C)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1122
\  (! A B. equal(A::'a,B) & subgroup_member(A) --> subgroup_member(B)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1123
\  (! A. subgroup_member(A) --> product(another_identity::'a,A,A)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1124
\  (! A. subgroup_member(A) --> product(A::'a,another_identity,A)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1125
\  (! A. subgroup_member(A) --> product(A::'a,another_inverse(A),another_identity)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1126
\  (! A. subgroup_member(A) --> product(another_inverse(A),A,another_identity)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1127
\  (! A. subgroup_member(A) --> subgroup_member(another_inverse(A))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1128
\  (! A B. equal(A::'a,B) --> equal(another_inverse(A),another_inverse(B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1129
\  (! A C D B. product(A::'a,B,C) & product(A::'a,D,C) --> equal(D::'a,B)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1130
\  (! B C D A. product(A::'a,B,C) & product(D::'a,B,C) --> equal(D::'a,A)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1131
\  (subgroup_member(a)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1132
\  (subgroup_member(another_identity)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1133
\  (~equal(inverse(a),another_inverse(a))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1134
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1135
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1136
(*163 inferences so far.  Searching to depth 11.  0.3 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1137
val GRP031_2 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1138
 ("(! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1139
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1140
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1141
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1142
\  (! A. product(A::'a,inverse(A),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1143
\  (! A. product(A::'a,identity,A)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1144
\  (! A. ~product(A::'a,a,identity)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1145
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1146
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1147
(*47 inferences so far.  Searching to depth 11.   0.2 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1148
val GRP034_4 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1149
 ("(! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1150
\  (! X. product(identity::'a,X,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1151
\  (! X. product(X::'a,identity,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1152
\  (! X. product(X::'a,inverse(X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1153
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1154
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1155
\  (! B A C. subgroup_member(A) & subgroup_member(B) & product(B::'a,inverse(A),C) --> subgroup_member(C)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1156
\  (subgroup_member(a)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1157
\  (~subgroup_member(inverse(a))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1158
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1159
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1160
(*3287 inferences so far.  Searching to depth 14.  3.5 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1161
val GRP047_2 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1162
 ("(! X. product(identity::'a,X,X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1163
\  (! X. product(inverse(X),X,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1164
\  (! X Y. product(X::'a,Y,multiply(X::'a,Y))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1165
\  (! X Y Z W. product(X::'a,Y,Z) & product(X::'a,Y,W) --> equal(Z::'a,W)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1166
\  (! Y U Z X V W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(U::'a,Z,W) --> product(X::'a,V,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1167
\  (! Y X V U Z W. product(X::'a,Y,U) & product(Y::'a,Z,V) & product(X::'a,V,W) --> product(U::'a,Z,W)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1168
\  (! X W Z Y. equal(X::'a,Y) & product(W::'a,Z,X) --> product(W::'a,Z,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1169
\  (equal(a::'a,b)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1170
\  (~equal(multiply(c::'a,a),multiply(c::'a,b))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1171
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1172
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1173
(*25559 inferences so far.  Searching to depth 19.  16.9 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1174
val GRP130_1_002 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1175
 ("(group_element(e_1)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1176
\  (group_element(e_2)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1177
\  (~equal(e_1::'a,e_2)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1178
\  (~equal(e_2::'a,e_1)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1179
\  (! X Y. group_element(X) & group_element(Y) --> product(X::'a,Y,e_1) | product(X::'a,Y,e_2)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1180
\  (! X Y W Z. product(X::'a,Y,W) & product(X::'a,Y,Z) --> equal(W::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1181
\  (! X Y W Z. product(X::'a,W,Y) & product(X::'a,Z,Y) --> equal(W::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1182
\  (! Y X W Z. product(W::'a,Y,X) & product(Z::'a,Y,X) --> equal(W::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1183
\  (! Z1 Z2 Y X. product(X::'a,Y,Z1) & product(X::'a,Z1,Z2) --> product(Z2::'a,Y,X)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1184
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1185
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1186
(*3468 inferences so far.  Searching to depth 10.  9.1 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1187
val GRP156_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1188
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1189
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1190
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1191
\  (! X. equal(multiply(identity::'a,X),X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1192
\  (! X. equal(multiply(inverse(X),X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1193
\  (! X Y Z. equal(multiply(multiply(X::'a,Y),Z),multiply(X::'a,multiply(Y::'a,Z)))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1194
\  (! A B. equal(A::'a,B) --> equal(inverse(A),inverse(B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1195
\  (! C D E. equal(C::'a,D) --> equal(multiply(C::'a,E),multiply(D::'a,E))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1196
\  (! F' H G. equal(F'::'a,G) --> equal(multiply(H::'a,F'),multiply(H::'a,G))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1197
\  (! Y X. equal(greatest_lower_bound(X::'a,Y),greatest_lower_bound(Y::'a,X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1198
\  (! Y X. equal(least_upper_bound(X::'a,Y),least_upper_bound(Y::'a,X))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1199
\  (! X Y Z. equal(greatest_lower_bound(X::'a,greatest_lower_bound(Y::'a,Z)),greatest_lower_bound(greatest_lower_bound(X::'a,Y),Z))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1200
\  (! X Y Z. equal(least_upper_bound(X::'a,least_upper_bound(Y::'a,Z)),least_upper_bound(least_upper_bound(X::'a,Y),Z))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1201
\  (! X. equal(least_upper_bound(X::'a,X),X)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1202
\  (! X. equal(greatest_lower_bound(X::'a,X),X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1203
\  (! Y X. equal(least_upper_bound(X::'a,greatest_lower_bound(X::'a,Y)),X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1204
\  (! Y X. equal(greatest_lower_bound(X::'a,least_upper_bound(X::'a,Y)),X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1205
\  (! Y X Z. equal(multiply(X::'a,least_upper_bound(Y::'a,Z)),least_upper_bound(multiply(X::'a,Y),multiply(X::'a,Z)))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1206
\  (! Y X Z. equal(multiply(X::'a,greatest_lower_bound(Y::'a,Z)),greatest_lower_bound(multiply(X::'a,Y),multiply(X::'a,Z)))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1207
\  (! Y Z X. equal(multiply(least_upper_bound(Y::'a,Z),X),least_upper_bound(multiply(Y::'a,X),multiply(Z::'a,X)))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1208
\  (! Y Z X. equal(multiply(greatest_lower_bound(Y::'a,Z),X),greatest_lower_bound(multiply(Y::'a,X),multiply(Z::'a,X)))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1209
\  (! A B C. equal(A::'a,B) --> equal(greatest_lower_bound(A::'a,C),greatest_lower_bound(B::'a,C))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1210
\  (! A C B. equal(A::'a,B) --> equal(greatest_lower_bound(C::'a,A),greatest_lower_bound(C::'a,B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1211
\  (! A B C. equal(A::'a,B) --> equal(least_upper_bound(A::'a,C),least_upper_bound(B::'a,C))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1212
\  (! A C B. equal(A::'a,B) --> equal(least_upper_bound(C::'a,A),least_upper_bound(C::'a,B))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1213
\  (! A B C. equal(A::'a,B) --> equal(multiply(A::'a,C),multiply(B::'a,C))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1214
\  (! A C B. equal(A::'a,B) --> equal(multiply(C::'a,A),multiply(C::'a,B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1215
\  (equal(least_upper_bound(a::'a,b),b)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1216
\  (~equal(greatest_lower_bound(multiply(a::'a,c),multiply(b::'a,c)),multiply(a::'a,c))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1217
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1218
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1219
(*4394 inferences so far.  Searching to depth 10.  8.2 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1220
val GRP168_1 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1221
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1222
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1223
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1224
\  (! X. equal(multiply(identity::'a,X),X)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1225
\  (! X. equal(multiply(inverse(X),X),identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1226
\  (! X Y Z. equal(multiply(multiply(X::'a,Y),Z),multiply(X::'a,multiply(Y::'a,Z)))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1227
\  (! A B. equal(A::'a,B) --> equal(inverse(A),inverse(B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1228
\  (! C D E. equal(C::'a,D) --> equal(multiply(C::'a,E),multiply(D::'a,E))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1229
\  (! F' H G. equal(F'::'a,G) --> equal(multiply(H::'a,F'),multiply(H::'a,G))) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1230
\  (! Y X. equal(greatest_lower_bound(X::'a,Y),greatest_lower_bound(Y::'a,X))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1231
\  (! Y X. equal(least_upper_bound(X::'a,Y),least_upper_bound(Y::'a,X))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1232
\  (! X Y Z. equal(greatest_lower_bound(X::'a,greatest_lower_bound(Y::'a,Z)),greatest_lower_bound(greatest_lower_bound(X::'a,Y),Z))) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1233
\  (! X Y Z. equal(least_upper_bound(X::'a,least_upper_bound(Y::'a,Z)),least_upper_bound(least_upper_bound(X::'a,Y),Z))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1234
\  (! X. equal(least_upper_bound(X::'a,X),X)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1235
\  (! X. equal(greatest_lower_bound(X::'a,X),X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1236
\  (! Y X. equal(least_upper_bound(X::'a,greatest_lower_bound(X::'a,Y)),X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1237
\  (! Y X. equal(greatest_lower_bound(X::'a,least_upper_bound(X::'a,Y)),X)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1238
\  (! Y X Z. equal(multiply(X::'a,least_upper_bound(Y::'a,Z)),least_upper_bound(multiply(X::'a,Y),multiply(X::'a,Z)))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1239
\  (! Y X Z. equal(multiply(X::'a,greatest_lower_bound(Y::'a,Z)),greatest_lower_bound(multiply(X::'a,Y),multiply(X::'a,Z)))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1240
\  (! Y Z X. equal(multiply(least_upper_bound(Y::'a,Z),X),least_upper_bound(multiply(Y::'a,X),multiply(Z::'a,X)))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1241
\  (! Y Z X. equal(multiply(greatest_lower_bound(Y::'a,Z),X),greatest_lower_bound(multiply(Y::'a,X),multiply(Z::'a,X)))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1242
\  (! A B C. equal(A::'a,B) --> equal(greatest_lower_bound(A::'a,C),greatest_lower_bound(B::'a,C))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1243
\  (! A C B. equal(A::'a,B) --> equal(greatest_lower_bound(C::'a,A),greatest_lower_bound(C::'a,B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1244
\  (! A B C. equal(A::'a,B) --> equal(least_upper_bound(A::'a,C),least_upper_bound(B::'a,C))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1245
\  (! A C B. equal(A::'a,B) --> equal(least_upper_bound(C::'a,A),least_upper_bound(C::'a,B))) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1246
\  (! A B C. equal(A::'a,B) --> equal(multiply(A::'a,C),multiply(B::'a,C))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1247
\  (! A C B. equal(A::'a,B) --> equal(multiply(C::'a,A),multiply(C::'a,B))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1248
\  (equal(least_upper_bound(a::'a,b),b)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1249
\  (~equal(least_upper_bound(multiply(inverse(c),multiply(a::'a,c)),multiply(inverse(c),multiply(b::'a,c))),multiply(inverse(c),multiply(b::'a,c)))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1250
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1251
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1252
(*250258 inferences so far.  Searching to depth 16.  406.2 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1253
val HEN003_3 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1254
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1255
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1256
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1257
\  (! X Y. less_equal(X::'a,Y) --> equal(divide(X::'a,Y),zero)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1258
\  (! X Y. equal(divide(X::'a,Y),zero) --> less_equal(X::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1259
\  (! Y X. less_equal(divide(X::'a,Y),X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1260
\  (! X Y Z. less_equal(divide(divide(X::'a,Z),divide(Y::'a,Z)),divide(divide(X::'a,Y),Z))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1261
\  (! X. less_equal(zero::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1262
\  (! X Y. less_equal(X::'a,Y) & less_equal(Y::'a,X) --> equal(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1263
\  (! X. less_equal(X::'a,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1264
\  (! A B C. equal(A::'a,B) --> equal(divide(A::'a,C),divide(B::'a,C))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1265
\  (! D F' E. equal(D::'a,E) --> equal(divide(F'::'a,D),divide(F'::'a,E))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1266
\  (! G H I'. equal(G::'a,H) & less_equal(G::'a,I') --> less_equal(H::'a,I')) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1267
\  (! J L K'. equal(J::'a,K') & less_equal(L::'a,J) --> less_equal(L::'a,K')) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1268
\  (~equal(divide(a::'a,a),zero)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1269
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1270
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1271
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1272
(*202177 inferences so far.  Searching to depth 14.  451 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1273
val HEN007_2 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1274
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1275
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1276
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1277
\  (! X Y. less_equal(X::'a,Y) --> quotient(X::'a,Y,zero)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1278
\  (! X Y. quotient(X::'a,Y,zero) --> less_equal(X::'a,Y)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1279
\  (! Y Z X. quotient(X::'a,Y,Z) --> less_equal(Z::'a,X)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1280
\  (! Y X V3 V2 V1 Z V4 V5. quotient(X::'a,Y,V1) & quotient(Y::'a,Z,V2) & quotient(X::'a,Z,V3) & quotient(V3::'a,V2,V4) & quotient(V1::'a,Z,V5) --> less_equal(V4::'a,V5)) &    \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1281
\  (! X. less_equal(zero::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1282
\  (! X Y. less_equal(X::'a,Y) & less_equal(Y::'a,X) --> equal(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1283
\  (! X. less_equal(X::'a,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1284
\  (! X Y. quotient(X::'a,Y,divide(X::'a,Y))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1285
\  (! X Y Z W. quotient(X::'a,Y,Z) & quotient(X::'a,Y,W) --> equal(Z::'a,W)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1286
\  (! X Y W Z. equal(X::'a,Y) & quotient(X::'a,W,Z) --> quotient(Y::'a,W,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1287
\  (! X W Y Z. equal(X::'a,Y) & quotient(W::'a,X,Z) --> quotient(W::'a,Y,Z)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1288
\  (! X W Z Y. equal(X::'a,Y) & quotient(W::'a,Z,X) --> quotient(W::'a,Z,Y)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1289
\  (! X Z Y. equal(X::'a,Y) & less_equal(Z::'a,X) --> less_equal(Z::'a,Y)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1290
\  (! X Y Z. equal(X::'a,Y) & less_equal(X::'a,Z) --> less_equal(Y::'a,Z)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1291
\  (! X Y W. equal(X::'a,Y) --> equal(divide(X::'a,W),divide(Y::'a,W))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1292
\  (! X W Y. equal(X::'a,Y) --> equal(divide(W::'a,X),divide(W::'a,Y))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1293
\  (! X. quotient(X::'a,identity,zero)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1294
\  (! X. quotient(zero::'a,X,zero)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1295
\  (! X. quotient(X::'a,X,zero)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1296
\  (! X. quotient(X::'a,zero,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1297
\  (! Y X Z. less_equal(X::'a,Y) & less_equal(Y::'a,Z) --> less_equal(X::'a,Z)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1298
\  (! W1 X Z W2 Y. quotient(X::'a,Y,W1) & less_equal(W1::'a,Z) & quotient(X::'a,Z,W2) --> less_equal(W2::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1299
\  (less_equal(x::'a,y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1300
\  (quotient(z::'a,y,zQy)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1301
\  (quotient(z::'a,x,zQx)) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1302
\  (~less_equal(zQy::'a,zQx)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1303
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1304
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1305
(*60026 inferences so far.  Searching to depth 12.  42.2 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1306
val HEN008_4 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1307
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1308
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1309
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1310
\  (! X Y. less_equal(X::'a,Y) --> equal(divide(X::'a,Y),zero)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1311
\  (! X Y. equal(divide(X::'a,Y),zero) --> less_equal(X::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1312
\  (! Y X. less_equal(divide(X::'a,Y),X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1313
\  (! X Y Z. less_equal(divide(divide(X::'a,Z),divide(Y::'a,Z)),divide(divide(X::'a,Y),Z))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1314
\  (! X. less_equal(zero::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1315
\  (! X Y. less_equal(X::'a,Y) & less_equal(Y::'a,X) --> equal(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1316
\  (! X. less_equal(X::'a,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1317
\  (! A B C. equal(A::'a,B) --> equal(divide(A::'a,C),divide(B::'a,C))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1318
\  (! D F' E. equal(D::'a,E) --> equal(divide(F'::'a,D),divide(F'::'a,E))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1319
\  (! G H I'. equal(G::'a,H) & less_equal(G::'a,I') --> less_equal(H::'a,I')) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1320
\  (! J L K'. equal(J::'a,K') & less_equal(L::'a,J) --> less_equal(L::'a,K')) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1321
\  (! X. equal(divide(X::'a,identity),zero)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1322
\  (! X. equal(divide(zero::'a,X),zero)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1323
\  (! X. equal(divide(X::'a,X),zero)) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1324
\  (equal(divide(a::'a,zero),a)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1325
\  (! Y X Z. less_equal(X::'a,Y) & less_equal(Y::'a,Z) --> less_equal(X::'a,Z)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1326
\  (! X Z Y. less_equal(divide(X::'a,Y),Z) --> less_equal(divide(X::'a,Z),Y)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1327
\  (! Y Z X. less_equal(X::'a,Y) --> less_equal(divide(Z::'a,Y),divide(Z::'a,X))) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1328
\  (less_equal(a::'a,b)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1329
\  (~less_equal(divide(a::'a,c),divide(b::'a,c))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1330
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1331
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1332
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1333
(*3160 inferences so far.  Searching to depth 11.  3.5 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1334
val HEN009_5 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1335
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1336
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1337
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1338
\  (! Y X. equal(divide(divide(X::'a,Y),X),zero)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1339
\  (! X Y Z. equal(divide(divide(divide(X::'a,Z),divide(Y::'a,Z)),divide(divide(X::'a,Y),Z)),zero)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1340
\  (! X. equal(divide(zero::'a,X),zero)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1341
\  (! X Y. equal(divide(X::'a,Y),zero) & equal(divide(Y::'a,X),zero) --> equal(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1342
\  (! X. equal(divide(X::'a,identity),zero)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1343
\  (! A B C. equal(A::'a,B) --> equal(divide(A::'a,C),divide(B::'a,C))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1344
\  (! D F' E. equal(D::'a,E) --> equal(divide(F'::'a,D),divide(F'::'a,E))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1345
\  (! Y X Z. equal(divide(X::'a,Y),zero) & equal(divide(Y::'a,Z),zero) --> equal(divide(X::'a,Z),zero)) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1346
\  (! X Z Y. equal(divide(divide(X::'a,Y),Z),zero) --> equal(divide(divide(X::'a,Z),Y),zero)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1347
\  (! Y Z X. equal(divide(X::'a,Y),zero) --> equal(divide(divide(Z::'a,Y),divide(Z::'a,X)),zero)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1348
\  (~equal(divide(identity::'a,a),divide(identity::'a,divide(identity::'a,divide(identity::'a,a))))) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1349
\  (equal(divide(identity::'a,a),b)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1350
\  (equal(divide(identity::'a,b),c)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1351
\  (equal(divide(identity::'a,c),d)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1352
\  (~equal(b::'a,d)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1353
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1354
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1355
(*970373 inferences so far.  Searching to depth 17.  890.0 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1356
val HEN012_3 = prove_hard
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1357
 ("(! X. equal(X::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1358
\  (! Y X. equal(X::'a,Y) --> equal(Y::'a,X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1359
\  (! Y X Z. equal(X::'a,Y) & equal(Y::'a,Z) --> equal(X::'a,Z)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1360
\  (! X Y. less_equal(X::'a,Y) --> equal(divide(X::'a,Y),zero)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1361
\  (! X Y. equal(divide(X::'a,Y),zero) --> less_equal(X::'a,Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1362
\  (! Y X. less_equal(divide(X::'a,Y),X)) & \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1363
\  (! X Y Z. less_equal(divide(divide(X::'a,Z),divide(Y::'a,Z)),divide(divide(X::'a,Y),Z))) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1364
\  (! X. less_equal(zero::'a,X)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1365
\  (! X Y. less_equal(X::'a,Y) & less_equal(Y::'a,X) --> equal(X::'a,Y)) &  \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1366
\  (! X. less_equal(X::'a,identity)) &      \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1367
\  (! A B C. equal(A::'a,B) --> equal(divide(A::'a,C),divide(B::'a,C))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1368
\  (! D F' E. equal(D::'a,E) --> equal(divide(F'::'a,D),divide(F'::'a,E))) &        \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1369
\  (! G H I'. equal(G::'a,H) & less_equal(G::'a,I') --> less_equal(H::'a,I')) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1370
\  (! J L K'. equal(J::'a,K') & less_equal(L::'a,J) --> less_equal(L::'a,K')) &     \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1371
\  (~less_equal(a::'a,a)) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1372
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1373
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1374
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1375
(*1063 inferences so far.  Searching to depth 20.  1.0 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1376
val LCL010_1 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1377
 ("(! X Y. is_a_theorem(equivalent(X::'a,Y)) & is_a_theorem(X) --> is_a_theorem(Y)) &       \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1378
\  (! X Z Y. is_a_theorem(equivalent(equivalent(X::'a,Y),equivalent(equivalent(X::'a,Z),equivalent(Z::'a,Y))))) &   \
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1379
\  (~is_a_theorem(equivalent(equivalent(a::'a,b),equivalent(equivalent(c::'a,b),equivalent(a::'a,c))))) --> False",
9841
ca3173f87b5c safe_meson_tac -> meson_tac
paulson
parents: 9000
diff changeset
  1380
  meson_tac 1);
8557
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1381
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1382
(*2549 inferences so far.  Searching to depth 12.  1.4 secs*)
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1383
val LCL077_2 = prove
fe75fe482566 restored the MESON examples file HOL/ex/mesontest2.ML
paulson
parents:
diff changeset
  1384