'How can I correct the following pddl domain?

Can someone help me to detect the error in the following PDDL domain:

(define (domain petri)

    (:requirements :strips :fluents :typing)

    (:types 
        place transition token
    )

    (:predicates
        (at ?t - token ?p - place )

    )

    (:functions
        (number-of-tokens ?p - place)
        (incoming ?p - place ?t - transition)
        (outgoing ?t - transition ?p - place)
        
    )

    (:action fire-transition
        :parameters (?t - transition)
        :preconditions (forall
            (?p - place)
            (or (not (incoming ?p ?t))
                (> (number-of-tokens ?p) 0)))
        :effects
        (forall
            (?p - place)
            (when
                (incoming ?p ?t)
                (decrease (number-of-tokens ?p))))
        (forall
            (?p - place)
            (when
                (outgoing ?t ?p)
                (increase (number-of-tokens ?p))))
    )

I am trying to implement the PDDL domain for petri net with fire-transition function which.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source