| author | paulson | 
| Mon, 23 Sep 1996 18:12:45 +0200 | |
| changeset 2009 | 9023e474d22a | 
| parent 1479 | 21eb5e156d91 | 
| child 2278 | d63ffafce255 | 
| permissions | -rw-r--r-- | 
| 1479 | 1 | (* Title: HOLCF/sprod3.thy | 
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 2 | ID: $Id$ | 
| 1479 | 3 | Author: Franz Regensburger | 
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 4 | Copyright 1993 Technische Universitaet Muenchen | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 5 | |
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 6 | Class instance of ** for class pcpo | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 7 | *) | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 8 | |
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 9 | Sprod3 = Sprod2 + | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 10 | |
| 1479 | 11 | arities "**" :: (pcpo,pcpo)pcpo (* Witness sprod2.ML *) | 
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 12 | |
| 752 
b89462f9d5f1
----------------------------------------------------------------------
 regensbu parents: 
657diff
changeset | 13 | consts | 
| 1479 | 14 |         spair        :: "'a -> 'b -> ('a**'b)" (* continuous strict pairing *)
 | 
| 15 |         sfst         :: "('a**'b)->'a"
 | |
| 16 |         ssnd         :: "('a**'b)->'b"
 | |
| 17 |         ssplit       :: "('a->'b->'c)->('a**'b)->'c"
 | |
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 18 | |
| 1168 
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
 regensbu parents: 
752diff
changeset | 19 | syntax | 
| 1479 | 20 |         "@stuple"    :: "['a, args] => 'a ** 'b"        ("(1'(|_,/ _|'))")
 | 
| 752 
b89462f9d5f1
----------------------------------------------------------------------
 regensbu parents: 
657diff
changeset | 21 | |
| 1168 
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
 regensbu parents: 
752diff
changeset | 22 | translations | 
| 1479 | 23 | "(|x, y, z|)" == "(|x, (|y, z|)|)" | 
| 24 | "(|x, y|)" == "spair`x`y" | |
| 625 | 25 | |
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 26 | rules | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 27 | |
| 1479 | 28 | inst_sprod_pcpo "(UU::'a**'b) = Ispair UU UU" | 
| 1168 
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
 regensbu parents: 
752diff
changeset | 29 | |
| 
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
 regensbu parents: 
752diff
changeset | 30 | defs | 
| 1479 | 31 | spair_def "spair == (LAM x y.Ispair x y)" | 
| 32 | sfst_def "sfst == (LAM p.Isfst p)" | |
| 33 | ssnd_def "ssnd == (LAM p.Issnd p)" | |
| 34 | ssplit_def "ssplit == (LAM f. strictify`(LAM p.f`(sfst`p)`(ssnd`p)))" | |
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 35 | |
| 1274 | 36 | (* start 8bit 1 *) | 
| 37 | (* end 8bit 1 *) | |
| 38 | ||
| 243 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 39 | end | 
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 40 | |
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 41 | |
| 
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
 nipkow parents: diff
changeset | 42 |