src/HOL/UNITY/PPROD.thy
author wenzelm
Mon, 04 Mar 2002 19:06:52 +0100
changeset 13012 f8bfc61ee1b5
parent 8251 9be357df93d4
child 13786 ab8f39f48a6f
permissions -rw-r--r--
hide SVC stuff (outdated); moved records to isar-ref;

(*  Title:      HOL/UNITY/PPROD.thy
    ID:         $Id$
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
    Copyright   1998  University of Cambridge

Abstraction over replicated components (PLam)
General products of programs (Pi operation)
*)

PPROD = Lift_prog +

constdefs

  PLam  :: "[nat set, nat => ('b * ((nat=>'b) * 'c)) program]
            => ((nat=>'b) * 'c) program"
    "PLam I F == JN i:I. lift i (F i)"

syntax
  "@PLam" :: [pttrn, nat set, 'b set] => (nat => 'b) set ("(3plam _:_./ _)" 10)

translations
  "plam x:A. B"   == "PLam A (%x. B)"

end