#!/usr/local/bin/himmlrun ;HimML compiled module. * main yyerror_h spi_tab_h process_h spi_h process_h gclause_h term_h lean_h |base&&&&&)))*$@+$@'@@true@false&&&) @) @ @@*-@ term_h-1%term @@*6@process_h-4%spi_declaration@*;@gclause_h-1%gclause @ @@$@+&>@spi_tab_h-1%spi_value@*I@process_h-1%spi_term @@*4@process_h-3%spi_process@*C@process_h-2%spi_fact @) @ @@@8@.@,@''var&@*, @ @) @@/@0@% ->@@2/@@%string&:@9/@3@%list/@/@-.&&/(@$@/@0@,/1@V)- @@@=@&)|@U/@0@@2E@h/@3y@2&K@M@[/@4&@5/@@%int&@5@5G@5&&T@@/@6&&7@SPI_PROC6@@8@/@0@@9:@/@;.&<@GCLAUSE; @ @@@= @u@a/@0@2A@/@>&&?@string @ @ @{@e/@0@@AB@sd @@k/@0@q/@C&AD@sf@h/@0@x @) @@/@F@% -m>@2@E&@ processes @@/@F@2G@funs@/@F@2@&&@ constructorsAH@spi @ @@i/@0@P/@I&AJ@st@g/@0@m/@3KAL@spl@b/@0@MAN@sp @ @@l/@0@/@@%bool&AO@sb@f/@0@V/@3W@P&AQ@stl @ @@d/@0@&AR@spinone@c/@0@/@0@Z@PKKAS@scase@j/@0@/@3TAU@sdl>@@= @) @@J/@0@`@2@V&WX@SPI_APPL@K/@0@2WY@SPI_VARI @@@= @) @ @ @z@N/@0@@PZ^@[&\@SPI_OUT @@[]@SPI_ZERO@k/@0@f@2K^_@SPI_BANG @ @@T/@0@`^a@SPI_CALL@d/@0@@P@2o@Pi@MK^b@SPI_DECRYPT_SYM@Q/@0@@2Z^c@SPI_LET @ @ @@de@SPI_DECRYPT_ASYM@R/@0@@Pf^g@SPI_IN@O/@0@@P@2@hi^j@ SPI_DESTRUCT @ @@kl@SPI_NEW@P/@0@m^n@SPI_PAR@S/@0@@Po^p@SPI_IF4@@= @) @@s/@0@@PW@q&r@SPI_DIFF@st@SPI_EQC&&))) @ @ @@2@versionu @@X/@0@@2~@}/@3v@/@-@w@''a&&&v(@W/@0@wv1 @ @ @ @ @ @) @@//@0@/@@ %hyacc_data@5A@/@@%optionA&@spiparse@A/@0@x@@/@F@My@/@3@@2@/@;y&&&&@lean_semantics @ @@5@kw_eofz) @ @ @{|@5@kw_of @ @@5@kw_zero@[/@0@@}~@/@;&<@5@kw_slash @ @ @@5@kw_any @ @@5@kw_open_bracket) @ @ @@/@0@h@do_args @@5@ kw_different@5@ kw_private @ @ @ @ @@/@@%exn&@SpiUnterminatedCommentEvt) @ @ @) @ @@5@ kw_period @@/@0@&@usage @ @@r/@0@5@&@QuitEvt@5@kw_if@5@kw_data @ @ @ @@5@kw_bang@/@0@@ @@/@0@put@@'b&@/@0@wy&@/@0@&@ print_gclause @ @@5@ kw_semicolon@5@kw_let @ @ @@5@ kw_open_curly@5@kw_fun@./@0@/@@ %hlex_data&G@spilex @ @ @ @@y/@0@2@ @ @@ /@0@5y @get@ /@0@&y @getline)&@infile_or_stdin @ @@5@ kw_open_paren) @ @ @) @ @@5@ identifier@5@kw_then @ @ @@5@kw_out @@5@kw_new @@5@kw_par@5@kw_proc @ @ @@5@kw_comma @ @@,/@0@/@@ %intarray&@&@yyerror@5@VAR) @@5@kw_close_bracket@5@kw_event @ @ @ @@5@kw_close_paren @ @@5@kw_else@@main @ @ @) @@5@ kw_implies@5@kw_in @ @ @@5@kw_close_curly @ @@5@kw_and@5@kw_equal @ @ @@5@kw_case)@0/@@%refA@ spi_value) @) @ @ @ @ @)) @@ @ @ @@@@?@!@@@c@@@A@@@ @ @ @ @@@@f @ @@@@B@(@@Ce) @ @ @@@@DO@@@Eg) @ @@@@F@@@Gt@@@H @ @ @@@@IQ@@@J @@@@K @@@@L@@@M @ @ @@@@N@@@Oj @ @@@@b@@@P) @@@@Q@@@R @ @ @ @@@@SR@@@T @ @@@@U@@@Vl@ @@i @ @ @@@@WS@@@Xn) @@@@Y@@@Z @ @ @@@@[U@@@\ @ @@@@]@@@^Y@@@_ @ @ @@@@`@@@ap)@@@&&j @ @ @ @@@@ @) @@@ @@ @ @@< @) @) @ @) @@@) @) @@p@@ @ @ @ @ @@@m@ @) @@@ @@ @ @ @ @ @ @@@)))@) @ @@@@ @ @) @@@@ @ @ @ @@ @@@@ @ @@@@ ) @ @ @) @@! @ @) @@7"@#)) @@$ @ @@%@& @) @ @@'@()& @) @ @@$@'@(1&&- @@76@<; @ @@$@'@ ?NSRBQLHJUDO&&>@$@'@XY&&I @@$@'@ ]b\jlnecgp_a&&4@$@'@rt&&C& @(& @ @@' @? @@'(@'1 @ @ @ @@'\ @ @ @@'B@'7)@'< @ @@'D@'] @ @ @@'H@'_)) @ @ @@'J @ @@'@'a) @ @ @@'L@'b) @@'r@' @ @@'N@'X@'c @ @ @@'e @ @ @@'O@'g)@'t @@'Q@'j @ @ @@'R@'l @ @ @@'S@'n)) @ @@'U@'Y@'p&$@&z$0 $$$@&$@&$$@&$@&$@&$$@&$@&$$@&s"$$$M$@&$$@&$@&$@&$hi 0$@&$@ &$@ &$$$@&$@&$$@q)B @A-@+@ @-C @<-D @:-8 @-E @6-F @4-G @2-& SKPkOsRdQJT[[UNWX@main.ml0\ @/-] @.- 5jcdflbgihkean @,-o @*- @1.0 - Apr 04, 20042p | @r- y 0 Ilean_semanticsprint_atomprint_termtsubsttvarsprint_gclauseprint_gclause_plis_funprint_spi_termmangleSPI_IFSPI_VARSPI_PARSPI_NEWSPI_DESTRUCTSPI_EQSPI_INSPI_DECRYPT_ASYMSPI_LETSPI_APPLSPI_DIFFSPI_DECRYPT_SYMSPI_CALLSPI_BANGSPI_ZEROGCLAUSESPI_PROCSPI_OUTV$spi_valuespiparsespilexmangleprint_spi_termis_funSPI_IFkw_casekw_equalSPI_VARkw_andkw_close_curlysdlkw_inkw_impliesSPI_PARscaseSPI_NEWkw_elsekw_close_parenspinonekw_eventkw_close_bracketVARSPI_DESTRUCTkw_commakw_prockw_parkw_newkw_outstlkw_thenSPI_EQidentifierSPI_INsbSPI_DECRYPT_ASYMkw_open_parenkw_funSPI_LETkw_open_curlykw_letSPI_APPLkw_semicolonkw_bangspkw_datakw_ifSPI_DIFFkw_periodSPI_DECRYPT_SYMsplSPI_CALLSpiUnterminatedCommentEvtstkw_privatekw_differentSPI_BANGspiSPI_ZEROkw_open_bracketkw_anysfkw_slashkw_zerokw_ofSPI_PROCsdSPI_OUTkw_eofstringyyerrorprint_yylocversionQuitEvtinfile_or_stdinusagedo_argsmain~!"sssssssss s~ r >  ssssssss s sssssss s  s s s ~!"GsFsE sD sss~ r!>  sa*s` s_5s^6s]s\$s[sZ>sYsX=sWsV/sUsT sSsRBsQsPsO&sNsMsL2sK"sJsI sHsG:sFsE4sDsC-sBsA's@(s? s>s=3s<#s;s:s9s8.s7 3sd56set8sf~:sg~si?3~Z    % , 2 @ Q X g h n  u  } ~ ~ ~ ~# ~* ~; ~C ~L ~U ~e ~n ~w ~ ~ ~ ~ ~~   ~~F ~E ~D ~  ~  ~ ~ ~a ~ ` ~"_ ~"^ ~ ] ~"\ ~"[ #Z "Y "X W $V U "T "S %R "Q "P "O N "M "L "K "J "I #&H '"G /F 6"E AD H'C KB \"A j"@ q? y"> "= < "; ": (9 "8 "7 6 "5 4 )3 2 *1 +0  "/ ". "- +,, /+ 8"* H") O-( R"' ["& c"% i$ r.# u" }"! /   0 1  d 4 "e 7 f 9 "g ; 0h = ei ; i0 &&& & &&&& &&&&&*)H@ *anonymous* )GFE& [KkTsdUNSQJOPR@ lean_h.ml8DC@ [WXBmangleprint_spi_termis_funSPI_ZEROSPI_VARSPI_NEWSPI_CALLSPI_DIFFSPI_DECRYPT_ASYMSPI_PROCSPI_OUTSPI_IFSPI_LETSPI_APPLSPI_DESTRUCTSPI_BANGSPI_PARSPI_EQSPI_DECRYPT_SYMSPI_INprint_gclause_plprint_gclausetvarstsubstprint_termprint_atomGCLAUSEV$~!"sss~r> sssss ss s  s  s s ss sss s~!" ssssss~r> sss3~   )  & .  6  ?  H  Y  b j q y ~ ~  ~ ~"  ~)  ~9~G  ~G~KH ~@ ~Q ~_ ~e ~l ~w ~ ~ ~ ~~ ~~& &)EFG& 5h[cdgkKlNsUeQTjSbPfOJkdRia@spi_h.mlm @-is_funprint_spi_termmanglekw_close_bracketspikw_differentSPI_ZEROkw_impliesscasekw_periodSPI_DECRYPT_SYMidentifiersplkw_zeroSPI_BANGkw_andSPI_VARsbkw_semicolonkw_newkw_open_bracketSPI_OUTkw_elseSPI_DIFFkw_open_parenSPI_PROCkw_eofkw_casesdkw_open_curlySPI_LETkw_commaSPI_CALLsdlkw_bangkw_outkw_anySPI_IFkw_close_parenspkw_procSPI_PARkw_ofkw_close_curlystlkw_funSPI_DESTRUCTVARSPI_APPLsfkw_eventkw_privatekw_inSPI_DECRYPT_ASYMkw_ifSPI_EQkw_thenkw_slashkw_equalspinonekw_letSPI_INkw_parSPI_NEWstkw_datastringSpiUnterminatedCommentEvt~!"Csss~r> &sBsA-s@s?s=+s<s; s:s9/s8 s7As6s5s4*s30s2%s1 s04s/s.#s- s,Bs+8s*s)'s(s')s&s%s$.s#6s"=s!s $ss;ss2s(ss?s s!sss:s@s5s s1ss3s "s ,s s 7s s9sss>ss#sC%3   )B A .@ 2? ? > H= S < Y; c : s9 ~ 8 ~7 ~ 6 ~5 ~4 ~$3 ~'2 ~41 ~;0 ~K/ ~S. ~[- ~d, ~r+ ~{* ~) ~( ~' ~& ~% ~$ ~# ~" ~! ~ ~ ~ ~ ~ ~ ~ ~                      "  *  - 5!l " lC <$ #tv&T)<<D 3&Tq88>3  "&H$$st@-u @2@*v @ w @ x @ @@ @@ )Pb|namegetgetline(X~*3X~+~6~~~~~~$3S    -     $    / &z @@, @@.@,}@)Usage: ispi * filename. Version ~@n, Copyright (C) Jean Goubault-Larrecq; see file COPYRIGHT. pldet comes with ABSOLUTELY NO WARRANTY; see file COPYING, sections 11, 12. This is free software, and you are welcome to redistribute it under certain conditions; see TERMS AND CONDITIONS in file COPYING. Use '-' instead of filename to read from stdin. Flags are: -h prints this help. 'LLkX~%~6~%~d6~%~6~%~63:+  % % ' ( 0 " "& \\-2e @ @ @) @ @) @) @@,)@@-h&'}~ @hu@ignored junk after filename (@) twvx @ @ @ @ @x@* @ @ @/@0@@ % Clauses @for the ISpi program @, @"automatically generated by ispi. @ @2@ input_clause(@ ,axiom, [@]). @Parsing failed: stop.  @5@: @ @Unterminated comment: stop. @Missing filename. 6pllfilenamenamegetlinegetfyydyylochydprogcssubprocspgclausecnamen()XX~%~6~%~d6~%~6~%~6$3~J4~(0 ~!XX~%~6~%~d6~%~6~%~6~$V~J~~!X~~EV"~%~ 6~%~~6~%~ 6~%~6VQ~~( X~*$VX~+~6~~~~~~$$~~t7~~6~~ w~ b~ 67~6y~~"y~~"X~6~~!~$ 7~$~6 *V~$~6~$~ 6~$~6~$~ 6~~E:FV9L/I~~!~$~#6~$~~6~$~$6~~6~$~%6V~$~6$$VX~%~&6~%~6e'6$V$RViR~J?~%*8~"X~%~~6~%~)6~%~~8~66~%~*6~%~6e'6 $V'~2*X~%~+6~%~6e'6 $V 3~E9X~%~,6X~%~6~%~d6~%~6~%~6e'6 3XX~%~6~%~d6~%~6~%~6e'6 3?  20) % %  ' ( 0&')) 0)+B 34707) %7 %= 'F (N 0VY[a 0aaX    5f 6u 7| 8~ 9~~~A~ ~~!~&- ~&~' $~*   /~/~4~6~8  ;&~8 <~=  <+~? =~B $ =~C >G~V >~W * >U~Y A ~] ~^~b~^~3 . C~h ~i~! C~m  3 6 C/~p D~w ? D6~y F~~ I ~ J~ K~ L~ M~~3 H! J" N ~ O~ P~ Q~ R~~ U~~~~$ X~ X~ X+ Y  Y ;~N O( Z Z [ \ \ ] ^ _ _) `# `$ a b b ; 0U c c 0) % % '  (( 0035 cF: c@;< 0<>M d>A0A) %A %G 'P (X 0`ce e j ekl 0ln&b @ @ @@,'HJnXQh~s66RVR~J~e%* ~"X~!~6$V 3ZK  i i   i    i*"#% i() e)+&'}&}&'}&(@cc*&&H"I) J KL@ process_h.ml s M[ d N O k P Q R S T Ph,SPI_APPLSPI_VARSPI_DIFFSPI_EQSPI_ZEROSPI_DECRYPT_SYMSPI_OUTSPI_DESTRUCTSPI_NEWSPI_PARSPI_DECRYPT_ASYMSPI_LETSPI_INSPI_IFSPI_BANGSPI_CALLtststst s st ststststs ts ts ts ts tstst s!3    +   (  !  *  : B O W _  p x ~ ~ ~ 4>~ 7M~ ~ & Y)@CD& WXZ@ gclause_h.ml `.print_atomprint_termtsubsttvarsV$~!"ssss~r> sst s 30    2 # %G  G OQ&H\S_)GFE& Tsk[KSNdUOQJRP`@ spi_tab_h.ml a b c d e f g h i j k l@5@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$|:mangleprint_spi_termis_funSPI_CALLSPI_DIFFSPI_NEWSPI_ZEROSPI_VARSPI_IFSPI_OUTSPI_DECRYPT_ASYMSPI_PROCSPI_BANGSPI_DESTRUCTSPI_LETSPI_APPLSPI_INSPI_DECRYPT_SYMSPI_PARSPI_EQstringspscasespinonesdstlsplspistsdlsfsbidentifierVARkw_slashkw_open_parenkw_close_parenkw_open_bracketkw_close_bracketkw_open_curlykw_close_curlykw_commakw_semicolonkw_periodkw_equalkw_differentkw_bangkw_zerokw_newkw_ifkw_ofkw_thenkw_elsekw_inkw_outkw_letkw_casekw_parkw_eventkw_prockw_implieskw_anykw_datakw_funkw_privatekw_andkw_eof~!"sss~r> sssss ss  s s s s  ss ss sstststststst st"st$st&st(st*st,s.s 0s!1s"2s#3s$4s%5s&6s'7s(8s)9s*:s+;s,s/?s0@s1As2Bs3Cs4Ds5Es6Fs7Gs8Hs9Is:Js;Ks<Ls=Ms>Ns?Os@PsAQsBR3~   )  & /  7  @  H  O  W h q  z ~  ~ ~ ~! ~1 ~9~G  ~G ~@ ~G ~J ~P ~X ~[! ~_# ~c% ~g' ~j) ~n+ ~q- ~ ~t/ ~! ~/  ~" ~/ ~# ~/ ~$ ~/ ~% ~/ ~& ~/ ~' ~/ ~( ~/ ~) ~/ ~* ~/ ~+ ~/ , / - / . / / / 0 / 1 / 2 / !3 / "4 / #5 / $6 / %7 / &8 / '9 / (: / ); / *< / + =  / ,> / -? / .%@ #/ /-A ./ 05B 5/ 1=?&H{2|y<<*@yyd*@@J$X3  <& <+&G %0@ @&@&t)@ @ @@w ii0,(@bb*&&HNI88B x3&NI88B x3&\IL<<Fx3  +&\IL<<Fx3  +&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx3  (&\IL<<Fx 3  (&\IL<<Fx 3  (&pIL88@X~3   4>&HV) W@ term_h.mlLNv-Vtsts3   &&pYZ88@X~3    &&&H"^) J KL s M[ d N O k P Q R S T Ph,SPI_APPLSPI_VARSPI_DIFFSPI_EQSPI_ZEROSPI_DECRYPT_SYMSPI_OUTSPI_DESTRUCTSPI_NEWSPI_PARSPI_DECRYPT_ASYMSPI_LETSPI_INSPI_IFSPI_BANGSPI_CALLtststst s st ststststs ts ts ts ts tstst s!3    +   (  !  *  : B O W _  p x ~ ~ ~ 4>~ 7M~ ~ &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw3  &\_`<<Fw 3  &\_`<<Fw 3  &\_`<<Fw 3  &&&&}G*}})o,(@ *&&&&HNV88B x3&NV88B x3&&&HN^88B x3&N^88B x3&\^L<<Fx3  +&\^L<<Fx3  +&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx3  (&\^L<<Fx 3  (&\^L<<Fx 3  (&p^L88@X~3   4>&&- %&}G(@, "- iin,(@*&&&&}}- ''}},@x-})@h}],(@*1A %%@ @})@d- (/". 00@nameu)@)@)@e*. ii*0@ @&- ii @\,(@ *3)@A ''}~}')@)@'0,(@*5A ((A 00@ @}~@  /@&&,1G,(@*7- $/@ @ @ @ @@ /@0@5@seekend @@ @seek @ @@/@0@&G@tell@@close @@ @advance)@n3F,(@**0@)@)@5E,(@*9@*78,(@*;,>(@8,(@*= v,9D,(@*?& w;C,>*=@,?@,B