(*
    Factorisation within a factorial domain
    $Id: Factor.thy,v 1.3 2005/09/17 18:49:14 wenzelm Exp $
    Author: Clemens Ballarin, started 25 November 1997
*)

theory Factor imports Ring begin

constdefs
  Factorisation :: "['a::ring, 'a list, 'a] => bool"
  (* factorisation of x into a list of irred factors and a unit u *)
  "Factorisation x factors u ==
     x = foldr op* factors u &
     (ALL a : set factors. irred a) & u dvd 1"

end
