src/HOL/Reconstruction.thy
author paulson
Thu, 05 Oct 2006 10:41:27 +0200
changeset 20862 1059f2316f88
parent 20809 6c4fd0b4b63a
child 20869 5abf3cd34a35
permissions -rw-r--r--
facts about combinators
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15151
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     1
(*  Title:      HOL/Reconstruction.thy
17603
f601609d3300 spaces inserted in header
webertj
parents: 17508
diff changeset
     2
    ID:         $Id$
15151
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     3
    Author:     Lawrence C Paulson
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     4
    Copyright   2004  University of Cambridge
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     5
*)
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     6
17462
47f7bddc3239 moved setup ResAxioms.clause_setup to Main.thy (it refers to all previous theories);
wenzelm
parents: 17421
diff changeset
     7
header{* Reconstructing external resolution proofs *}
15151
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     8
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
     9
theory Reconstruction
20809
6c4fd0b4b63a moved theory Infinite_Set to Library;
wenzelm
parents: 20788
diff changeset
    10
imports Hilbert_Choice Map Extraction
18449
e314fb38307d new hash table module in HOL/Too/s
paulson
parents: 18004
diff changeset
    11
uses 	 "Tools/polyhash.ML"
17819
1241e5d31d5b small tidy-up of utility functions
paulson
parents: 17603
diff changeset
    12
	 "Tools/ATP/AtpCommunication.ML"
1241e5d31d5b small tidy-up of utility functions
paulson
parents: 17603
diff changeset
    13
	 "Tools/ATP/watcher.ML"
18794
46d66332bf81 Added new file Tools/ATP/reduce_axiomsN.ML
mengj
parents: 18449
diff changeset
    14
         "Tools/ATP/reduce_axiomsN.ML"
20761
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    15
         "Tools/res_clause.ML"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    16
	 ("Tools/res_hol_clause.ML")
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    17
	 ("Tools/res_axioms.ML")
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    18
	 ("Tools/res_atp.ML")
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    19
	 ("Tools/reconstruction.ML")
15151
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
    20
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
    21
begin
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
    22
20761
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    23
constdefs
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    24
  COMBI :: "'a => 'a"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    25
    "COMBI P == P"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    26
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    27
  COMBK :: "'a => 'b => 'a"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    28
    "COMBK P Q == P"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    29
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    30
  COMBB :: "('b => 'c) => ('a => 'b) => 'a => 'c"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    31
    "COMBB P Q R == P (Q R)"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    32
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    33
  COMBC :: "('a => 'b => 'c) => 'b => 'a => 'c"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    34
    "COMBC P Q R == P R Q"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    35
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    36
  COMBS :: "('a => 'b => 'c) => ('a => 'b) => 'a => 'c"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    37
    "COMBS P Q R == P R (Q R)"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    38
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    39
  COMBB' :: "('a => 'c) => ('b => 'a) => ('d => 'b) => 'd => 'c"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    40
    "COMBB' M P Q R == M (P (Q R))"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    41
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    42
  COMBC' :: "('a => 'b => 'c) => ('d => 'a) => 'b => 'd => 'c"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    43
    "COMBC' M P Q R == M (P R) Q"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    44
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    45
  COMBS' :: "('a => 'b => 'c) => ('d => 'a) => ('d => 'b) => 'd => 'c"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    46
    "COMBS' M P Q R == M (P R) (Q R)"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    47
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    48
  fequal :: "'a => 'a => bool"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    49
    "fequal X Y == (X=Y)"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    50
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    51
lemma fequal_imp_equal: "fequal X Y ==> X=Y"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    52
  by (simp add: fequal_def)
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    53
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    54
lemma equal_imp_fequal: "X=Y ==> fequal X Y"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    55
  by (simp add: fequal_def)
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    56
20862
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    57
lemma COMBK1: "COMBK P == (%Q. P)"
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    58
apply (rule eq_reflection) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    59
apply (rule ext) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    60
apply (simp add: COMBK_def) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    61
done
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    62
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    63
lemma COMBI1: "COMBI == (%P. P)"
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    64
apply (rule eq_reflection) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    65
apply (rule ext) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    66
apply (simp add: COMBI_def) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    67
done
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    68
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    69
lemma COMBB1: "COMBB P Q == %R. P (Q R)"
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    70
apply (rule eq_reflection) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    71
apply (rule ext) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    72
apply (simp add: COMBB_def) 
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    73
done
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    74
1059f2316f88 facts about combinators
paulson
parents: 20809
diff changeset
    75
20788
d51711512d07 Reordered how files are loaded.
mengj
parents: 20761
diff changeset
    76
use "Tools/res_axioms.ML"
20761
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    77
use "Tools/res_hol_clause.ML"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    78
use "Tools/res_atp.ML"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    79
use "Tools/reconstruction.ML"
7a6f69cf5a86 addition of combinators
paulson
parents: 19767
diff changeset
    80
16563
a92f96951355 meson method taking an argument list
paulson
parents: 16479
diff changeset
    81
setup ResAxioms.meson_method_setup
15151
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
    82
setup Reconstruction.setup
429666b09783 proof reconstruction for external ATPs
paulson
parents:
diff changeset
    83
15653
3549ff7158f3 Updated to add watcher code.
quigley
parents: 15645
diff changeset
    84
end