Figure 4.2 illustrates this tree for the logical form λf.CAUSE(DECREASE(MICE), f (SNAKES)), which # initialize predicate instance variables # from text labels in environment world = {"mice": undef, ("mice", "snakes"): undef, ..  corresponds to the question "what happens to the snakes when the mice decrease?"
this logical form is shorthand for the following program: filter(lambda f.cause( decrease(getOrganism("mice")), f(getOrganism("snakes"))), set(decrease, increase, unchanged)) entities such as MICE are created by calling getOrganism and logical forms with functional types implicitly represent filters over the appropriate argument type.