Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/tests/nofib/real/veritas/Main.hs

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


module Main where

import Auto

import Tactics

import ThmTactics

import Display

import Tree

import Vtslib

import Editor

import Globals

import Getops

import Edlib

import Lookup

import X_interface

import Goals

import Type_defs

import Core_datatype

import Kernel

import Tags

import Parse
 


--proof_edit : string list * string list -> unit 

main = do
    ins <- getContents
    putStr (main' ins)

main' instr 
	= rqts 
	  where
	  ( _ , _ , rqts ) = edits
	  edits = proof_edit default_ds ( split '\n' args ) (instr , rsps , [1..]) 
          default_ds = "" --home ++ "/VTS"
	  args = "" -- temp test
	  rsps = [0..] -- dummy response list
	  










{-
--	= parse_spec_trm (strings_to_input [s]) 
--		(set_lookup_table initial_state lt) sg

-- other parsers later

parse_sgn lt sg s 
	= sgparse_spec_sgn (strings_to_input [s]) 
		(set_lookup_table initial_state lt)

parse_dec lt sg s 
	= parse_spec_dec (strings_to_input [s]) 
		(set_lookup_table initial_state lt) sg
-}



goto_next tr@(TreeSt t _ _) 
	= tree_top tr /./
	  (\ tr' -> case tree_search incomplete_tree False t of
	       	        ((iL,_):_) -> reTurn ( tree_goto iL tr )
	                _          -> case search_tree of
				          ((iL,_):_) -> reTurn(tree_goto iL tr')
				          _          -> reTurn tr 
			  	      where
			              (TreeSt t' _ _) = tr' 
	  			      search_tree = tree_search 
						      incomplete_tree False t' )




incomplete_tree (Tree _ tl (SOME _) _ _ ) = False

incomplete_tree (Tree _ tl NONE _ _ ) = forall is_complete tl





goto_named tr@(TreeSt t _ _ ) 
	= x_form True form /.>/
	  tree_top tr /./ 
	  exp 
	  where
	  exp ( SOME [OutText uid] , tr' ) 
		  = case tree_search is_node True t' of
			 ((iL,_):_) -> reTurn ( tree_goto iL tr' )
			 _          -> x_set_status "No such node"  ./.
				       reTurn tr 
		    where
		    (TreeSt t' _ _ ) = tr'
		    is_node (Tree (Goal _ _ _ uid' _ _ _ _) _ _ _ _ ) 
				= uid == uid'
	  exp _ = reTurn tr 

	  form = [InComment "Goto Node",
		  InComment "",
		  InComment "Uid of Node",
		  InSingleText "" ""]

tree_cmdL = 
	[
	    ( "Top", tree_top ),
	    ( "P",	tree_up ),
	    ( "PExpand", show_goal_cmd ),
	    ( "1Expand", show_subgoal_cmd 0),
	    ( "2Expand", show_subgoal_cmd 1),
	    ( "3Expand", show_subgoal_cmd 2),
	    ( "4Expand", show_subgoal_cmd 3),
	    ( "Theory",  show_theory ),
	    ( "Object",  show_object ),
	    ( "Comment", show_comment),
	    ( "Arguments", show_arguments),
	    ( "1", 	tree_down 0 ),
	    ( "2",	tree_down 1),
	    ( "3",	tree_down 2),
	    ( "4",	tree_down 3),
	    ( "Next", goto_next),
	    ( "Named", goto_named),
	    ( "Undo",tree_undo),
	    ( "Tactic",show_tactics),
	    ( "Strip",strip_tac),
	    ( "Triv",triv_tac),
	    lift_tactic conj_tac,
	    lift_ordtactic gen_tac,
	    lift_tactic auto_tac,
	    lift_tactic reflex_tac,
	    lift_ordtactic disch_tac,
	    lift_tactic disj_tac,
	    lift_tactic eq_tac,
	    lift_tactic or_tac,
	    lift_tactic lemma_tac,
	    lift_tactic not_tac,
	    lift_tactic exists_elim_tac,
	    lift_tactic taut_tac,
	    lift_tactic axiom_tac,
	    lift_tactic hyp_tac,
--	    lift_ordtactic split_tac,
	    lift_tactic induction_tac,
	    lift_tactic complete_tac
{- ,
	    lift_tactic rewrite_tac,
-}
	]
strip_tac = strip (error "") auto_tac


triv_tac = triv auto_tac


edit = editor tree_cmdL initialize update_state my_quit finish 


proof_edit default_ds argL 
--	= getops "d:s:t:" argL 
	= exp ( [] , [] ) --('t',SOME "Trm")], ["hello"]) --temp arg parse 
	  where
	  exp _ --(options, [arg])  
		= edit 
	  	  `handle`
	  	  err_handler
	  err_handler mesg = x_error mesg /./ 
		             ( \ _ -> proof_edit default_ds argL )

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].