pith. machine review for the scientific record. sign in

arxiv: 2604.20507 · v1 · submitted 2026-04-22 · 💻 cs.PL

Recognition: unknown

Automatic Code and Test Generation of Smart Contracts from Coordination Models

Ant\'onio Ravara, Elvis Konjoh Selabi, Emilio Tuosto, Maurizio Murgia

Authors on Pith no claims yet

Pith reviewed 2026-05-09 22:55 UTC · model grok-4.3

classification 💻 cs.PL
keywords smart contractscoordination modelscode generationtest synthesisSolidityformal methodsdecentralized systemsblockchain
0
0 comments X

The pith

Coordination models with dynamic roles and data-driven transitions can be automatically translated into correct Solidity smart contracts plus tests.

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The paper develops a formal model for decentralized coordination that supports dynamic roles, data-driven transitions, and external interfaces. This model enables high-level specification and validation of workflows before implementation. The authors supply a toolchain that performs model validation, generates Solidity code, and synthesizes tests automatically. They illustrate the method by encoding several standard coordination patterns as working smart contracts. The approach is presented as platform-agnostic even though the prototype targets blockchain.

Core claim

We propose a formal approach for specifying and implementing decentralised coordination in distributed systems, with a focus on smart contracts. Our model captures dynamic roles, data-driven transitions, and external coordination interfaces, enabling high-level reasoning about decentralised workflows. We implement a toolchain that supports formal model validation, code generation for Solidity, and automated test synthesis. We demonstrate the expressiveness and practicality of the approach by modelling and realising some coordination patterns in smart contracts.

What carries the argument

The coordination model with dynamic roles, data-driven transitions, and external interfaces, translated by a toolchain into Solidity code and test cases.

If this is right

  • High-level coordination patterns become directly realizable as deployable blockchain code without manual translation.
  • Formal validation of the model can be performed once and reused across multiple target languages.
  • Automated test synthesis produces executable checks that cover the dynamic role and data-driven aspects of the workflow.
  • Developers can design and verify workflows independently of any particular smart-contract language or platform.
  • The same model can serve as a single source of truth for both implementation and testing.

Where Pith is reading between the lines

These are editorial extensions of the paper, not claims the author makes directly.

  • If the translation is faithful, model-level proofs of safety properties would carry over to the generated contracts.
  • The method could be extended to other coordination formalisms or to non-blockchain service architectures with minimal changes to the toolchain.
  • Test synthesis might systematically detect coordination-specific failures such as deadlocks or role conflicts that arise only at runtime.
  • Reusing validated coordination models across projects could reduce duplication of security-critical code.

Load-bearing premise

The formal model can be translated into smart contract code that preserves every coordination property and adds no new errors or security flaws.

What would settle it

A generated contract that violates a role-transition rule or data constraint present in the original model, or that exhibits a vulnerability absent from the validated specification.

read the original abstract

We propose a formal approach for specifying and implementing decentralised coordination in distributed systems, with a focus on smart contracts. Our model captures dynamic roles, data-driven transitions, and external coordination interfaces, enabling high-level reasoning about decentralised workflows. We implement a toolchain that supports formal model validation, code generation for Solidity (our framework is extendable to other smart contract languages), and automated test synthesis. Although our implementation targets blockchain platforms, the methodology is platform-agnostic and may generalise to other service-oriented and distributed architectures. We demonstrate the expressiveness and practicality of the approach by modelling and realising some coordination patterns in smart contracts.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, simulated authors' rebuttal, and a circularity audit. Tearing a paper down is the easy half of reading it; the pith above is the substance, this is the friction.

Referee Report

2 major / 2 minor

Summary. The paper proposes a formal coordination model for decentralized systems focused on smart contracts, capturing dynamic roles, data-driven transitions, and external interfaces to enable high-level reasoning. It describes an implemented toolchain supporting formal model validation, automatic code generation to Solidity (extendable to other languages), and automated test synthesis. The approach is demonstrated by modeling and realizing coordination patterns, and is presented as platform-agnostic and generalizable to other distributed architectures.

Significance. If the translation rules faithfully preserve coordination properties and produce correct, secure contracts, the work could meaningfully advance the application of formal methods to blockchain development by automating reliable smart contract creation from high-level models. The unified toolchain for validation, generation, and testing is a constructive strength, as is the emphasis on dynamic roles and data-driven aspects that address common coordination challenges.

major comments (2)
  1. [Toolchain and code generation] The toolchain section (around the description of code generation): the central claim that the formal model can be automatically translated into correct Solidity contracts without introducing errors or losing coordination properties lacks any detailed translation rules, semantics, or argument for correctness preservation. This directly impacts the weakest assumption and prevents assessment of whether the generated code is faithful.
  2. [Demonstrations] Demonstrations section: the claim of practicality is supported only by high-level mentions of modeling coordination patterns, with no concrete model examples, generated code snippets, test outputs, or property checks provided. This makes it impossible to evaluate the expressiveness or error-free nature of the realizations.
minor comments (2)
  1. [Abstract] The abstract refers to 'some coordination patterns' without naming them or indicating their complexity, which reduces the reader's ability to gauge the scope of the demonstrations.
  2. [Model definition] Notation for dynamic roles and data-driven transitions could be clarified with a small example early in the model definition to aid readability.

Simulated Author's Rebuttal

2 responses · 0 unresolved

We thank the referee for the constructive feedback and for recognizing the potential of our formal coordination model and toolchain. We address each major comment below and will revise the manuscript to strengthen the presentation of the translation process and demonstrations.

read point-by-point responses
  1. Referee: [Toolchain and code generation] The toolchain section (around the description of code generation): the central claim that the formal model can be automatically translated into correct Solidity contracts without introducing errors or losing coordination properties lacks any detailed translation rules, semantics, or argument for correctness preservation. This directly impacts the weakest assumption and prevents assessment of whether the generated code is faithful.

    Authors: We agree that the current description of the code generation rules is high-level. We will expand the toolchain section with the explicit translation rules mapping coordination model elements (roles, data-driven transitions, and interfaces) to Solidity constructs, together with a semantics-preserving argument that shows how the generated contracts maintain the original coordination properties. These additions will make the correctness claim directly verifiable. revision: yes

  2. Referee: [Demonstrations] Demonstrations section: the claim of practicality is supported only by high-level mentions of modeling coordination patterns, with no concrete model examples, generated code snippets, test outputs, or property checks provided. This makes it impossible to evaluate the expressiveness or error-free nature of the realizations.

    Authors: We accept that the demonstrations would be more convincing with concrete artifacts. The revised manuscript will include at least one fully worked coordination pattern, showing the source model, the generated Solidity contract fragment, sample test cases produced by the synthesizer, and the results of the model-validation checks. This will allow direct assessment of expressiveness and fidelity. revision: yes

Circularity Check

0 steps flagged

No significant circularity detected

full rationale

The paper proposes a formal coordination model with dynamic roles and data-driven transitions, then describes an implemented toolchain for model validation, Solidity code generation, and automated test synthesis, demonstrated on coordination patterns. No equations, fitted parameters, or derivation steps are present in the provided material that reduce claims to self-definitions or self-citations by construction. The central claims rest on the toolchain's external grounding in formal methods and platform-agnostic methodology rather than any internal loop or renaming of inputs as outputs.

Axiom & Free-Parameter Ledger

0 free parameters · 0 axioms · 0 invented entities

Abstract-only review provides no details on specific parameters, axioms, or new entities; the approach relies on unspecified formal modeling assumptions.

pith-pipeline@v0.9.0 · 5403 in / 1065 out tokens · 23581 ms · 2026-05-09T22:55:10.755778+00:00 · methodology

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Reference graph

Works this paper leans on

118 extracted references · 44 canonical work pages

  1. [1]

    Context-Aware and Dynamic Role-Based Access Control Using Blockchain

    Rahman, Mohsin Ur and Guidi, Barbara and Baiardi, Fabrizio and Ricci, Laura. Context-Aware and Dynamic Role-Based Access Control Using Blockchain. Advanced Information Networking and Applications. 2020. doi:10.1007/978-3-030-44041-1\_122

  2. [2]

    , title =

    Siqueira, Frank and Davis, Joseph G. , title =. 2021 , publisher =

  3. [3]

    Event-based data-centric semantics for consistent data management in microservices , year =

    Zuckmantel, Tilman and Zhou, Yongluan and D\". Event-based data-centric semantics for consistent data management in microservices , year =. doi:10.1145/3524860.3539807 , booktitle =

  4. [4]

    Michael Papazoglou , title =

  5. [5]

    2003 , doi =

    Chris Peltz , title =. 2003 , doi =

  6. [6]

    2024 , eprint =

    Three Decades of Formal Methods in Business Process Compliance: A Systematic Literature Review , author =. 2024 , eprint =

  7. [7]

    A Transactional Perspective on Execute-order-validate Blockchains , booktitle =

    Pingcheng Ruan and Dumitrel Loghin and Quang. A Transactional Perspective on Execute-order-validate Blockchains , booktitle =. 2020 , doi =

  8. [8]

    A Minimal Core Calculus for Solidity Contracts , booktitle =

    Massimo Bartoletti and Letterio Galletta and Maurizio Murgia , editor =. A Minimal Core Calculus for Solidity Contracts , booktitle =. 2019 , doi =

  9. [9]

    Is Solidity Solid Enough? , booktitle =

    Silvia Crafa and Matteo Di Pirro and Elena Zucca , editor =. Is Solidity Solid Enough? , booktitle =. 2019 , doi =

  10. [10]

    Bertrand Meyer , title =

  11. [11]

    Dokter, S.-S

    Kasper Dokter and Sung-Shik Jongmans and Farhad Arbab and Simon Bliudze , title =. doi:10.1016/j.jlamp.2016.09.008 , year =

  12. [12]

    Nickolas Kavantzas and Davide Burdett and Gregory Ritzinger and Tony Fletcher and Yves Lafon , title =

  13. [13]

    Proceedings of the International Conference on Concurrency Theory (CONCUR) , pages =

    Huimin Lin , title =. Proceedings of the International Conference on Concurrency Theory (CONCUR) , pages =

  14. [14]

    Acta Informatica , pages =

    Xudong Qin and Simon Bliudze and Eric Madelaine and Zechen Hou and Yuxin Deng and Min Zhang , title =. Acta Informatica , pages =. doi:10.1007/s00236-020-00367-6 , year =

  15. [15]

    Matthew Hennessy and Huimin Lin , title =

  16. [16]

    Michele Boreale and Rocco

  17. [17]

    Proceedings of the International Conference on Formal Techniques for Networked and Distributed Systems (FORTE) , pages =

    Davide Basile and Pierpaolo Degano and Gian Luigi Ferrari and Emilio Tuosto , title =. Proceedings of the International Conference on Formal Techniques for Networked and Distributed Systems (FORTE) , pages =. doi:10.1007/978-3-319-39570-8\_5 , year =

  18. [18]

    doi:10.1016/j.jlamp.2015.09.011 , year =

    Davide Basile and Pierpaolo Degano and Gian Luigi Ferrari and Emilio Tuosto , title =. doi:10.1016/j.jlamp.2015.09.011 , year =

  19. [19]

    Proceedings of the International Symposium on Formal Methods (FM) , pages =

    Davide Basile and Maurice H. Proceedings of the International Symposium on Formal Methods (FM) , pages =. doi:10.1007/978-3-031-27481-7\_31 , year =

  20. [20]

    doi:10.23638/LMCS-16(2:9)2020 , year =

    Davide Basile and Maurice H. doi:10.23638/LMCS-16(2:9)2020 , year =

  21. [21]

    Science of Computer Programming , pages =

    Davide Basile and Maurice H. Science of Computer Programming , pages =. doi:10.1016/J.SCICO.2022.102841 , year =

  22. [22]

    Journal of the ACM 30(2), pp

    Daniel Brand and Pitro Zafiropulo , title =. doi:10.1145/322374.322380 , year =

  23. [23]

    Proceedings of the International Conference on Formal Aspects of Component Software (FACS) , pages =

    Simone Orlando and Vairo. Proceedings of the International Conference on Formal Aspects of Component Software (FACS) , pages =. doi:10.1007/978-3-030-90636-8\_5 , year =

  24. [24]

    Proceedings of the International Conference on Coordination Models and Languages (COORDINATION) , pages =

    Franco Barbanera and Ivan Lanese and Emilio Tuosto , title =. Proceedings of the International Conference on Coordination Models and Languages (COORDINATION) , pages =. doi:10.1007/978-3-030-50029-0\_6 , year =

  25. [25]

    Per Brinch Hansen , title =

  26. [26]

    Lopez Pombo and Agust

    Carlos G. Lopez Pombo and Agust. Proceedings of the Theoretical Aspects of Computing (ICTAC) , pages =. doi:10.1007/978-3-031-47963-2\_9 , year =

  27. [27]

    Proceedings of the European Conference on Object-Oriented Programming (ECOOP) , pages =

    Lorenzo Gheri and Ivan Lanese and Neil Sayers and Emilio Tuosto and Nobuko Yoshida , title =. Proceedings of the European Conference on Object-Oriented Programming (ECOOP) , pages =. doi:10.4230/LIPIcs.ECOOP.2022.8 , year =

  28. [28]

    Dagstuhl Artifacts Series , pages =

    Lorenzo Gheri and Ivan Lanese and Neil Sayers and Emilio Tuosto and Nobuko Yoshida , title =. Dagstuhl Artifacts Series , pages =. doi:10.4230/DARTS.8.2.21 , year =

  29. [29]

    Nomic Foundation , title =

  30. [30]

    Ethereum Community , title =

  31. [31]

    2025 , howpublished =

  32. [32]

    Nick Szabo , title =

  33. [33]

    Ethereum Project Yellow Paper , year =

    Gavin Wood , title =. Ethereum Project Yellow Paper , year =

  34. [34]

    Proceedings of the 6th International Conference on Principles of Security and Trust (POST) , pages =

    Nicola Atzei and Massimo Bartoletti and Tiziana Cimoli , title =. Proceedings of the 6th International Conference on Principles of Security and Trust (POST) , pages =

  35. [35]

    Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security , pages =

    Karthikeyan Bhargavan and others , title =. Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security , pages =. doi:10.1145/2993600.2993611 , year =

  36. [36]

    Clarke and Orna Grumberg and Doron A

    Edmund M. Clarke and Orna Grumberg and Doron A. Peled , title =

  37. [37]

    Making smart contracts smarter,

    Loi Luu and others , title =. Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security , pages =. doi:10.1145/2976749.2978309 , year =

  38. [38]

    Proceedings of the International Conference on Financial Cryptography and Data Security , pages =

    Yoichi Hirai , title =. Proceedings of the International Conference on Financial Cryptography and Data Security , pages =

  39. [40]

    Proceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs , pages =

    Sidney Amani and Myriam B. Proceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs , pages =. doi:10.1145/3167084 , year =

  40. [41]

    Frantz and Mariusz Nowostawski , title =

    Christopher K. Frantz and Mariusz Nowostawski , title =. 2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems , pages =. doi:10.1109/FAS-W.2016.53 , year =

  41. [42]

    Lahiri and Shuo Chen and Yuepeng Wang and Isil Dillig , title =

    Shuvendu K. Lahiri and Shuo Chen and Yuepeng Wang and Isil Dillig , title =. CoRR , volume =. 2018 , url =

  42. [43]

    Securify: Practical security analysis of smart contracts,

    Petar Tsankov and others , title =. Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security , pages =. doi:10.1145/3243734.3243780 , year =

  43. [44]

    Knottenbelt , title =

    Dominik Harz and William J. Knottenbelt , title =. CoRR , volume =

  44. [45]

    Fajge and Raju Halder and Md Imran Alam , title =

    Neeraj Kumar Singh and Akshay M. Fajge and Raju Halder and Md Imran Alam , title =. Distributed Computing to Blockchain , pages =. doi:10.1016/B978-0-323-96146-2.00028-0 , year =

  45. [46]

    Proceedings of the 22nd International Conference on Financial Cryptography and Data Security (FC) , pages =

    Anastasia Mavridou and Aron Laszka , title =. Proceedings of the 22nd International Conference on Financial Cryptography and Data Security (FC) , pages =. doi:10.1007/978-3-662-58387-6\_28 , year =

  46. [47]

    Proceedings of the 23rd International Conference on Financial Cryptography and Data Security (FC) , pages =

    Anastasia Mavridou and Aron Laszka and Emmanouela Stachtiari and Abhishek Dubey , title =. Proceedings of the 23rd International Conference on Financial Cryptography and Data Security (FC) , pages =. doi:10.1007/978-3-030-32101-7\_27 , year =

  47. [48]

    2023 , volume =

    Keerthi Nelaturu and Anastasia Mavridou and Emmanouela Stachtiari and Andreas Veneris and Aron Laszka , journal =. 2023 , volume =

  48. [49]

    doi:10.1016/J.SCICO.2022.102911 , year =

    Silvia Crafa and Cosimo Laneve and Giovanni Sartor and Adele Veschetti , title =. doi:10.1016/J.SCICO.2022.102911 , year =

  49. [50]

    Cosimo Laneve , title =

  50. [51]

    Proceedings of the IFIP Working Conference on Programming Concepts and Methods , pages =

    Philip Wadler , title =. Proceedings of the IFIP Working Conference on Programming Concepts and Methods , pages =

  51. [52]

    Aliasing in Object-Oriented Programming

    Dave Clarke and Johan. Aliasing in Object-Oriented Programming. Types, Analysis and Verification , pages =. doi:10.1007/978-3-642-36946-9\_3 , year =

  52. [53]

    Proceedings of the International Conference on Financial Cryptography and Data Security (FC) , pages =

    Afonso Falc. Proceedings of the International Conference on Financial Cryptography and Data Security (FC) , pages =. doi:10.1007/978-3-031-32415-4\_34 , year =

  53. [54]

    Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems (MODELS) , pages =

    Javier Godoy and Juan Pablo Galeotti and Diego Garbervetsky and Sebasti. Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems (MODELS) , pages =. doi:10.1145/3550355.3552462 , year =

  54. [55]

    Coblenz and Reed Oei and Tyler Etzel and Paulette Koronkevich and Miles Baker and Yannick Bloem and Brad A

    Michael J. Coblenz and Reed Oei and Tyler Etzel and Paulette Koronkevich and Miles Baker and Yannick Bloem and Brad A. Myers and Joshua Sunshine and Jonathan Aldrich , title =. ACM Transactions on Programming Languages and Systems , pages =. doi:10.1145/3417516 , year =

  55. [56]

    ACM Transactions on Programming Languages and Systems , pages =

    Ronald Garcia and. ACM Transactions on Programming Languages and Systems , pages =. doi:10.1145/2629609 , year =

  56. [57]

    R. E. Strom and S. Yemini , title =. IEEE Transactions on Software Engineering , pages =. doi:10.1109/TSE.1986.6312929 , year =

  57. [58]

    Hagberg and Daniel A

    Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart , title =. Proceedings of the Python in Science Conference , pages =

  58. [59]

    ACM Transactions on Management Information Systems , pages =

    Flavio Corradini and Alessandro Marcelletti and Andrea Morichetta and Andrea Polini and Barbara Re and Francesco Tiezzi , title =. ACM Transactions on Management Information Systems , pages =. doi:10.1145/3505225 , year =

  59. [60]

    BPM (PhD/Demos) , pages =

    Flavio Corradini and Alessandro Marcelletti and Andrea Morichetta and Andrea Polini and Barbara Re and Francesco Tiezzi , title =. BPM (PhD/Demos) , pages =

  60. [61]

    Distributed Ledger Technologies: Research and Practice , doi =

    Flavio Corradini and Alessandro Marcelletti and Andrea Morichetta and Andrea Polini and Barbara Re and Francesco Tiezzi , title =. Distributed Ledger Technologies: Research and Practice , doi =

  61. [62]

    Vitalik Buterin , title =

  62. [63]

    Proceedings of the International Conference on Formal Aspects of Component Software (FACS) , pages =

    Silvia Crafa and Cosimo Laneve , title =. Proceedings of the International Conference on Formal Aspects of Component Software (FACS) , pages =. doi:10.1007/978-3-031-20872-0\_12 , year =

  63. [64]

    GraphStream:

    Yoann Pign. GraphStream:. CoRR , volume =. 2008 , url =

  64. [65]

    Proceedings of the Internatioanl Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS) , pages =

    Leonardo de Moura and Nikolaj Bj. Proceedings of the Internatioanl Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS) , pages =

  65. [66]

    International Symposium on Graph Drawing , pages =

    John Ellson and Emden Gansner and Eleftherios Koutsofios and Stephen North and Gordon Woodhull , title =. International Symposium on Graph Drawing , pages =

  66. [67]

    doi:10.5281/zenodo.10996456 , year =

    Joao Afonso and Elvis Konjoh Selabi and Maurizio Murgia and Emilio Tuosto and Antonio Ravara , title =. doi:10.5281/zenodo.10996456 , year =

  67. [68]

    2017 , doi =

    Simon Gay and Ant. 2017 , doi =

  68. [69]

    ACM SIGPLAN Notices , pages =

    Oscar Nierstrasz , title =. ACM SIGPLAN Notices , pages =. doi:10.1145/167962.167976 , year =

  69. [70]

    ACM Transactions on Programming Languages and Systems , pages =

    David Gelernter , title =. ACM Transactions on Programming Languages and Systems , pages =

  70. [71]

    Proceedings of the 2007 ACM symposium on Applied computing , pages =

    Sun Meng and Farhad Arbab , title =. Proceedings of the 2007 ACM symposium on Applied computing , pages =

  71. [72]

    IEEE Software , pages =

    Ananda Basu and Bensalem Bensalem and Marius Bozga and Jacques Combaz and Mohamad Jaber and Thanh-Hung Nguyen and Joseph Sifakis , title =. IEEE Software , pages =

  72. [73]

    Ananda Basu , title =

  73. [74]

    Peterson , title =

    James L. Peterson , title =. ACM Computing Surveys , pages =

  74. [75]

    IEEE Access , pages =

    Mantas Jurgelaitis and Lina. IEEE Access , pages =. doi:10.1109/ACCESS.2022.3162227 , year =

  75. [76]

    Information and Software Technology , volume =

    Mohammad Hamdaqa and Lucas Alberto Pineda Metz and Ilham Qasse , title =. Information and Software Technology , volume =. doi:10.1016/j.infsof.2021.106762 , year =

  76. [77]

    Proceedings of the IEEE Symposium on Security and Privacy (S&P) , year =

    Permenev, Andrei and Tsankov, Petar and Drachsler-Cohen, Dana and Haridi, Seif and Basin, David , title =. Proceedings of the IEEE Symposium on Security and Privacy (S&P) , year =

  77. [78]

    doi:10.1145/3368089.3417939 , year =

    Liu, Ye and Li, Yi and Lin, Shang-Wei and Yan, Qiang , title =. doi:10.1145/3368089.3417939 , year =

  78. [79]

    Proceedings of the ACM/IEEE International Conference on Software Engineering (ICSE) , year =

    Jiashuo Zhang and Jiachi Chen and John Grundy and Jianbo Gao and Yanlin Wang and Ting Chen and Zhi Guan and Zhong Chen , title =. Proceedings of the ACM/IEEE International Conference on Software Engineering (ICSE) , year =

  79. [80]

    Proceedings of the IEEE 22nd International Conference on Software Quality, Reliability and Security (QRS) , pages =

    Du, Jinhu and Huang, Song and Wang, Xingya and Zheng, Changyou and Sun, Jinlei , title =. Proceedings of the IEEE 22nd International Conference on Software Quality, Reliability and Security (QRS) , pages =. doi:10.1109/QRS57517.2022.00077 , year =

  80. [81]

    CoRR , volume =

    Stefan Driessen and Dario Di Nucci and Geert Monsieur and Willem. CoRR , volume =. 2021 , url =

Showing first 80 references.