A Logical View of GNN-Style Computation and the Role of Activation Functions

Pablo Barceló, Floris Geerts, Matthias Lanzinger, Klara Pakhomenko, Jan Van den Bussche
12/22/2025
cs.LGcs.LO

No confident code implementation found for this paper.

Abstract

We study the numerical and Boolean expressiveness of MPLang, a declarative language that captures the computation of graph neural networks (GNNs) through linear message passing and activation functions. We begin with A-MPLang, the fragment without activation functions, and give a characterization of its expressive power in terms of walk-summed features. For bounded activation functions, we show that (under mild conditions) all eventually constant activations yield the same expressive power - numerical and Boolean - and that it subsumes previously established logics for GNNs with eventually constant activation functions but without linear layers. Finally, we prove the first expressive separation between unbounded and bounded activations in the presence of linear layers: MPLang with ReLU is strictly more powerful for numerical queries than MPLang with eventually constant activation functions, e.g., truncated ReLU. This hinges on subtle interactions between linear aggregation and eventually constant non-linearities, and it establishes that GNNs using ReLU are more expressive than those restricted to eventually constant activations and linear layers.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{barcel2025logical,
  title  = {A Logical View of GNN-Style Computation and the Role of Activation Functions},
  author = {Pablo Barceló and Floris Geerts and Matthias Lanzinger and Klara Pakhomenko and Jan Van den Bussche},
  year   = {2025},
  eprint = {2512.19332},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2512.19332v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2512.19332.svg)](https://codeofpaper.com/paper/2512.19332)

Discussion