Abstract
The Calculus of Audited Units (CAU) is a typed lambda calculus resulting from a computational interpretation of Artemov’s Justification Logic under the Curry-Howard isomorphism; it extends the simply typed lambda calculus by providing audited types, inhabited by expressions carrying a trail of their past computation history. Unlike most other auditing techniques, CAU allows the inspection of trails at runtime as a first-class operation, with applications in security, debugging, and transparency of scientific computation.
An efficient implementation of CAU is challenging: not only do the sizes of trails grow rapidly, but they also need to be normalized after every beta reduction. In this paper, we study how to reduce terms more efficiently in an untyped variant of CAU by means of explicit substitutions and explicit auditing operations, finally deriving a call-by-value abstract machine.
An extended version of this paper can be found at https://arxiv.org/abs/1808.00486.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Although the right branch describes an unfaithful account of history, it is still a coherent one: we will explain this in more detail in the conclusions.
References
Abadi, M., Cardelli, L., Curien, P.L., Lévy, J.J.: Explicit substitutions. J. Funct. Program. 1(4), 375–416 (1991). https://doi.org/10.1017/s0956796800000186
Abadi, M., Fournet, C.: Access control based on execution history. In: Proceedings of Network and Distributed System Security Symposium, NDSS 2003, San Diego, CA. The Internet Society (2003) http://www.isoc.org/isoc/conferences/ndss/03/proceedings/papers/7.pdf
Accattoli, B., Barenbaum, P., Mazza, D.: Distilling abstract machines. In: Proceedings of 19th ACM SIGPLAN Conference on Functional Programming, ICFP 2014, Gothenburg, September 2014, pp. 363–376. ACM Press, New York (2014). https://doi.org/10.1145/2628136.2628154
Accattoli, B., Bonelli, E., Kesner, D., Lombardi, C.: A nonstandard standardization theorem. In: Proceedings of 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, San Diego, CA, January 2014, pp. 659–670. ACM Press, New York (2014). https://doi.org/10.1145/2535838.2535886
Accattoli, B., Kesner, D.: The structural \(\lambda \)-calculus. In: Dawar, A., Veith, H. (eds.) CSL 2010. LNCS, vol. 6247, pp. 381–395. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15205-4_30
Amir-Mohammadian, S., Chong, S., Skalka, C.: Correct audit logging: theory and practice. In: Piessens, F., Viganò, L. (eds.) POST 2016. LNCS, vol. 9635, pp. 139–162. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49635-0_8
Artemov, S.: Justification logic. In: Hölldobler, S., Lutz, C., Wansing, H. (eds.) JELIA 2008. LNCS (LNAI), vol. 5293, pp. 1–4. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-87803-2_1
Artemov, S.: The logic of justification. Rev. Symb. Log. 1(4), 477–513 (2008). https://doi.org/10.1017/s1755020308090060
Artemov, S.N.: Explicit provability and constructive semantics. Bull. Symb. Log. 7(1), 1–36 (2001). https://doi.org/10.2307/2687821
Artemov, S., Bonelli, E.: The intensional lambda calculus. In: Artemov, S.N., Nerode, A. (eds.) LFCS 2007. LNCS, vol. 4514, pp. 12–25. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-72734-7_2
Asperti, A., Levy, J.J.: The cost of usage in the \(\lambda \)-calculus. In: Proceedings of 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, June 2013, pp. 293–300. IEEE CS Press, Washington, DC (2013). https://doi.org/10.1109/lics.2013.35
Banerjee, A., Naumann, D.A.: History-based access control and secure information flow. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 27–48. Springer, Heidelberg (2005). https://doi.org/10.1007/978-3-540-30569-9_2
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. Studies in Logic and the Foundations of Mathematic, vol. 103, 2nd edn. North-Holland, Amsterdam (1984). https://www.sciencedirect.com/science/bookseries/0049-237X/103
Bavera, F., Bonelli, E.: Justification logic and audited computation. J. Log. Comput. 28(5), 909–934 (2018). https://doi.org/10.1093/logcom/exv037
de Bruijn, N.: Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation with application to the Church-Rosser theorem. Indagationes Math. 34(5), 381–392 (1972). https://doi.org/10.1016/1385-7258(72)90034-0
Garg, D., Jia, L., Datta, A.: Policy auditing over incomplete logs: theory, implementation and applications. In: Proceedings of 18th ACM Conference on Computer and Communications Security, CCS 2011, Chicago, IL, October 2011, pp. 151–162. ACM Press, New York (2011). https://doi.org/10.1145/2046707.2046726
Giesl, J., et al.: Proving Termination of programs automatically with AProVE. In: Demri, S., Kapur, D., Weidenbach, C. (eds.) IJCAR 2014. LNCS (LNAI), vol. 8562, pp. 184–191. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08587-6_13
Hardin, T.: Confluence results for the pure strong categorical combinatory logic CCL: \(\lambda \)-calculi as subsystems of CCL. Theor. Comput. Sci. 65(3), 291–342 (1989). https://doi.org/10.1016/0304-3975(89)90105-9
Jia, L., et al.: AURA: a programming language for authorization and audit. In: Proceedings of 13th ACM SIGPLAN International Conference on Functional Programming, ICFP 2013, Victoria, BC, September 2008, pp. 27–38. ACM Press, New York (2008). https://doi.org/10.1145/1411204.1411212
Kashima, R.: A proof of the standardization theorem in lambda-calculus. Technical report, Research Reports on Mathematical and Computing Science, Tokyo Institute of Technology (2000)
Moreau, L.: The foundations for provenance on the web. Found. Trends Web Sci. 2(2–3), 99–241 (2010). https://doi.org/10.1561/1800000010
Perera, R., Acar, U.A., Cheney, J., Levy, P.B.: Functional programs that explain their work. In: Proceedings of 17th ACM SIGPLAN International Conference on Functional Programming, ICFP 2012, Copenhagen, September 2002, pp. 365–376. ACM Press, New York (2012). https://doi.org/10.1145/2364527.2364579
Pfenning, F., Davies, R.: A judgmental reconstruction of modal logic. Math. Struct. Comput. Sci. 11(4), 511–540 (2001). https://doi.org/10.1017/s0960129501003322
Ricciotti, W.: A core calculus for provenance inspection. In: Proceedings of 19th International Symposium on Principles and Practice of Declarative Programming, PPDP 2017, Namur, October 2017, pp. 187–198. ACM Press, New York (2017). https://doi.org/10.1145/3131851.3131871
Ricciotti, W., Cheney, J.: Strongly normalizing audited computation. In: Goranko, V., Dam, M. (eds.) Proceedings of 26th EACSL Annual Conference, CSL 2017, Stockholm, August 2017. Leibniz International Proceedings in Informatics, vol. 82, Article no. 36. Schloss Dagstuhl Publishing, Saarbrücken/Wadern (2017). https://doi.org/10.4230/lipics.csl.2017.36
Ricciotti, W., Stolarek, J., Perera, R., Cheney, J.: Imperative functional programs that explain their work. Proc. ACM Program. Lang. 1(ICFP), Article no. 14 (2017). https://doi.org/10.1145/3110258
Vaughan, J.A., Jia, L., Mazurak, K., Zdancewic, S.: Evidence-based audit. In: Proceedings of 21st IEEE Computer Security Foundations Symposium, CSF 2008, Pittsburgh, PA, June 2008, pp. 177–191. IEEE CS Press, Washington, DC (2008). https://doi.org/10.1109/csf.2008.24
Xi, H.: Upper bounds for standardizations and an application. J. Symb. Log. 64(1), 291–303 (1999). https://doi.org/10.2307/2586765
Acknowledgments
Effort sponsored by the Air Force Office of Scientific Research, Air Force Material Command, USAF, under grant number FA8655-13-1-3006. The U.S. Government and University of Edinburgh are authorised to reproduce and distribute reprints for their purposes notwithstanding any copyright notation thereon. Cheney was also supported by ERC Consolidator Grant Skye (grant number 682315). We are grateful to James McKinna and the anonymous reviewers for comments.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Ricciotti, W., Cheney, J. (2018). Explicit Auditing. In: Fischer, B., Uustalu, T. (eds) Theoretical Aspects of Computing – ICTAC 2018. ICTAC 2018. Lecture Notes in Computer Science(), vol 11187. Springer, Cham. https://doi.org/10.1007/978-3-030-02508-3_20
Download citation
DOI: https://doi.org/10.1007/978-3-030-02508-3_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-02507-6
Online ISBN: 978-3-030-02508-3
eBook Packages: Computer ScienceComputer Science (R0)